C語言運用 經典例題

2021-06-15 21:10:25 字數 2897 閱讀 7031

在某次實彈射擊訓練中,班長將十個戰士圍成一圈發子彈。首先,班長給第乙個戰士10顆,第二個戰士2顆,第三個戰士8顆,第四個戰士22顆,第五個戰士16顆,第六個戰士4顆,第七個戰士10顆,第八個戰士6顆,第九個戰士14顆,第十個戰士20顆。然後按如下方法將每個戰士手中的子彈進行調整:所有的戰士檢查自己手中的子彈數,如果子彈數為奇數,則向班長再要一顆。然後每個戰士再同時

將自己手中的子彈分一半給下乙個戰士(第10 個戰士將手中的子彈分一半給第1個戰士)。問需要多少次調整後,每個戰士手中的子彈數都相等?每人各有多少顆子彈?

要求輸出每輪調整後各戰士手中的子彈數。

要求結果的輸出格式為

0   10   2   8  22  16   4  10   6  14  20  各戰士手中原始的子彈數

1   xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  第1輪各戰士手中的子彈數

2   xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  第2輪各戰士手中的子彈數

……n   xx  xx  xx  xx  xx  xx  xx  xx  xx  xx  最後一輪各戰士手中的子彈數(應相等)

#include

using namespace std;

#define soldiers 10

static int bullettotalamount=0;

static int bullet[soldiers]=;

bool passbullet(int soldiersn);//sn = serial number

void printfresult(int count);

int main( void )

int count=0;

if ( flag )

while ( passbullet(count++) );                  

}printfresult( count );    

system("pause");     

return 0;

}bool passbullet(int soldiersn)//sn = serial number

else

}//pass

int temp;

temp = bullet[soldiers-1];

for ( i = (soldiers-1); i > 0; i-- )

bullet[i] += temp;

//end

if ( (bullettotalamount % soldiers) == 0 )

else

return true;

}void printfresult(int count)

0 10    2       8       22      16      4       10      6       14      20

1 15    6       5       15      19      10      7       8       10      17

2 17    11      6       11      18      15      9       8       9       14

3 16    15      9       9       15      17      13      9       9       12

4 14    16      13      10      13      17      16      12      10      11

5 13    15      15      12      12      16      17      14      11      11

6 13    15      16      14      12      14      17      16      13      12

7 13    15      16      15      13      13      16      17      15      13

8 14    15      16      16      15      14      15      17      17      15

9 15    15      16      16      16      15      15      17      18      17

10 17   16      16      16      16      16      16      17      18      18

11 18   17      16      16      16      16      16      17      18      18

12 18   18      17      16      16      16      16      17      18      18

13 18   18      18      17      16      16      16      17      18      18

14 18   18      18      18      17      16      16      17      18      18

15 18   18      18      18      18      17      16      17      18      18

16 18   18      18      18      18      18      17      17      18      18

17 18   18      18      18      18      18      18      18      18      18

請按任意鍵繼續. . .

C語言經典例題

學習中碰到的許多例題 include int main return 0 水仙花數的大概演算法就是通過for迴圈提取出每一位數,再利用if語句判斷最後輸出。當然,也可以換一種迴圈,大致就是這樣的演算法。includeint main return 0 利用for迴圈的巢狀還可以,做出許多更強的東西。...

c語言經典例題及解析

素數,就是除了1和他本身,不能被其他數整除的數字。今天我們將用三種不同的方法來實現 輸出100到200之間的素數 請往下看 1 第一種方法就是用100到200之間的每個數字,除以2到其本身前面的那乙個數字,如果此過程中出現整除的現象,則該數不是素數。如果沒有整除的現象,則該數為素數輸出。includ...

C語言經典例題小練

企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提10 利潤高於10萬元,低於20萬元時,低於10萬元的部分按10 提成,高於10萬元的部分,可提成7.5 20萬到40萬之間時,高於20萬元的部分,可提成5 40萬到60萬之間時高於40萬元的部分,可提成3 60萬到100萬之間時,...