關於數組的一個例子

一、題目要求:

 慶祝活動,現在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;
}

四、自我總結

該題使用數組來解決,清晰明瞭。我是一個正在學習編程的新手,不對的地方多多指教。


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