一、題目要求:
假設炮手對時間掌握的都很準,那麼總共聽到多少聲炮響?
二、問題分析
對於這個問題,可以使用數組來解決。首先使用三個數組分別存放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;
}