當前位置:編程學習大全網 - 編程語言 - C語言新手求助!!!急!!!

C語言新手求助!!!急!!!

分類: 電腦/網絡 >> 程序設計 >> 其他編程語言

問題描述:

10個人圍成壹圈,編號依次從1到10.從編號為1的人開始從1到3報數,凡報數是3的人退出圈子.編寫程序輸出依次出列的人的編號.(用選擇,循環語句以及數組知識編寫)

解析:

新手當然要照顧了 所以壹個代碼壹個代碼的給妳加註釋。。

看明白了最好自己在做壹邊

這題有很多做法 給妳壹個最好理解的例子吧 但是這個代碼的效率。。。。。

代碼如下:

#include <stdio.h>/*頭文件*/

#define M 10 /*宏定義 可直接改變圈的大小*/

#define N 3 /*可定義 從1數到 幾 退出這個圈子*/

void main()/*主函數*/

{

int a[M];/*定義數組*/

int i;/*用做循環等*/

int x = 1; /*數到幾*/

int y = 0;/*最近M次循環裏有多少個人已經出去這個圈*/

int k = 1;/*while的開關變量*/

for(i=0; i<M; i++)/*給數組賦值*/

{

a[i] = i+1;

}

while(k)

{

for(i=0; i<M; i++)/*M個為壹組按照下標過濾*/

{

if(a[i] == 0)/*判斷這個a[i]位置上的人是否已經出圈*/

{

y++;/*如果出圈變量加壹*/

continue;/*退出本次循環*/

}

if(x == N)/*a[i]上的人沒有出圈 而且正好數到N*/

{

printf("%d ",a[i]);/*顯示這個人的編號*/

a[i] = 0;/*用0代替 代表已經出圈*/

x = 1;/*數 數重新從1 開始*/

}

else/*a[i]上的人沒有出圈 但還沒有數到N*/

{

x++;/*繼續數下壹個數*/

}

}

if(y == M)/*如果M個為壹組全都已經出圈 代表圈裏已經沒有人了*/

{

k = 0;/*退出while循環程序結束*/

}

else/*圈裏還有人*/

{

y = 0;/*把y置0待下次for循環時重新計數*/

}

}

printf("\n");/*可有可無*/

getch();/*可有可無*/

}

結果為

3 6 9 2 7 1 8 5 10 4

妳可以更改程序中的M N的數字來改變要求。

多做做題有好處 ,祝妳快點進步。!

由於百度對對齊的處理非常差 所以妳可以到這裏看代碼

bababian/photozoom.sl?pictureid=B16AE5B1739602D1F2A716DB4EA83D52DT&size=6&viewID=DB4A5B6DABA0D***********D07C8135UR

如果看不清 請右鍵 另存後在看 。

百度 老巖 gabmyd@126

  • 上一篇:兒童創意海報-怎麽用ai制作創意海報
  • 下一篇:軟件工程師工作總結
  • copyright 2024編程學習大全網