关于数组的一个例子

一、题目要求:

 庆祝活动,现在A、B、C三条军舰要同时开始鸣放礼炮各21响。已知A舰每隔5秒鸣放一次,B舰每隔6秒鸣放一次,C舰每隔7秒鸣放一次。

假设炮手对时间掌握的都很准,那么总共听到多少声炮响?

二、问题分析

对于这个问题,可以使用数组来解决。首先使用三个数组分别存放A,B,C舰21响礼炮的鸣放时间点,这里可以使用一个for循环来将各个时间点放入数组;接下来再用一个新的数

组,记录A,B,C的鸣放时间点在各自数组中的位置,将该位置赋值给一个变量,在第四个数组中将以该变量为下标的元素设为1,因为有三个需记录的数组,所以这块需要用到三

个for循环;最后,统计第四个数组中1的个数,即为总共听到的礼炮声数。描述详见代码:

三、代码实现

#include<stdio.h>
int main()
{
	int arr[21] = {0};
	int brr[21] = {0};
	int crr[21] = {0};
	int drr[150] = {0};
	int sum = 0;
	int i = 0;
	int j = 0;
	for(i = 0;i < 21;i++)
	{
		arr[i] = i * 5;
		brr[i] = i * 6;
		crr[i] = i * 7;
	}
	for(i = 0;i < 21;i++)
	{
		j = arr[i];
		drr[j] = 1;
	}
	for(i = 0;i < 21;i++)
	{
		j = brr[i];
		drr[j] = 1;
	}
	for(i = 0;i < 21;i++)
	{
		j = crr[i];
		drr[j] = 1;
	}
	for(i = 0;i < 150;i++)
	{
		sum = drr[i] + sum;
	}
	printf("你可以听见 %d 声炮响 \n",sum);
    return 0;
}

四、自我总结

该题使用数组来解决,清晰明了。我是一个正在学习编程的新手,不对的地方多多指教。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章