就是將每一個人的信息保存在二維數(shù)組的一個維中。每個人的信息包含2部分,一部分是他的編號(即最開始他站的位置,作為二維數(shù)組的第一維),另一部分就是他是否還在圈中的標(biāo)記(1表示在,0表示不在)。

為昌圖等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及昌圖網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、昌圖網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!
index變量就是用來遍歷每一個人的。array[index]就是編號為index的一個人。array[index][1]就是編號為index的人的狀態(tài)(是否還在圈中)。count用于記錄圈中的當(dāng)前人數(shù)。
當(dāng)圈中還有1個人以上時,就用if(array[index][1]==1)找到一個還在圈中的人,得到他的index,他報數(shù),temp就加1,當(dāng)temp為3時,表示這個人報的是3,將他出圈(array[index][1]=0
),將圈中人數(shù)減1(count--),并將temp置0,剩下的人重新從1開始報數(shù)。index=(index+1+n)%n語句找到下一個人,然后接著循環(huán)判斷這個人是不是在圈中。。。如此反復(fù)。
但是你這個程序似乎沒有對出圈順序進(jìn)行輸出。
#includestdio.h //定義頭文件
void main() //主函數(shù)
{
int a[51],i,j,x,n; // 定義變量和數(shù)組
scanf("%d %d",n,j); // 從輸入終端輸入變量
for ( i=0;i=n-2;i++) a[i]=i+1;a[n-1]=0;x=n-1; //用for語句實(shí)現(xiàn)第一個循環(huán),表示出圈的人數(shù)
while( a[x]!=x ) //while語句判斷數(shù)組內(nèi)標(biāo)記的人是否出圈
{ for( i=1;i=j-1;i++)
x=a[x]; 標(biāo)記出圈的人
a[x] = a[a[x]];
}
printf( "The left child is NO %d.",x+1 ); 輸出
}
這個程序雖然簡單,但新手最好別這么寫!
如果需要,我可以給你寫一個能看懂的!
歡迎追問,望采納!
#includelt;stdio.hgt;
#define N 5//人數(shù)
void main()
{
int a[N]={0},i=0,out_n=0,call_n=0,*p;
p=a;
while(1){//循環(huán)報數(shù)
if(*p==0){//如果健在
if(out_n==(N-1))break;//如果僅剩一人
call_n++;//報數(shù)
call_n%=3;//最大為3,到了3就從0開始
if(call_n==0){*p=1;out_n++;}//為0(即3)出局
}
p++;if(p==a+N)p=a;//循環(huán)轉(zhuǎn)向下一人
}
printf("最后剩余者的編號是:%d\n",p+1-a);
}
擴(kuò)展資料:
printf()函數(shù)是格式化輸出函數(shù),一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。在編寫程序時經(jīng)常會用到此函數(shù)。
函數(shù)的原型為:int printf(const char*format,...);函數(shù)返回值為整型。若成功則返回輸出的字符數(shù),輸出出錯則返回負(fù)值。
printf()函數(shù)的調(diào)用格式為:
printf("lt;格式化字符串gt;",lt;參量表gt;);
其中格式化字符串包括兩部分內(nèi)容:一部分是正常字符;這些字符將按原樣輸出;另一部分是格式化規(guī)定字符,以"%"開始,后跟一個或幾個規(guī)定字符,用來確定輸出內(nèi)容格式。
參量表是需要輸出的一系列參數(shù),其個數(shù)必須與格式化字符串所說明的輸出參數(shù)個數(shù)一樣多,各參數(shù)之間用","分開,且順序一一對應(yīng),否則將會出現(xiàn)意想不到的錯誤。
規(guī)定符
%d十進(jìn)制有符號整數(shù)
%u十進(jìn)制無符號整數(shù)
%f浮點(diǎn)數(shù)
%s字符串
%c單個字符
%p指針的值
%e指數(shù)形式的浮點(diǎn)數(shù)
%x,%X無符號以十六進(jìn)制表示的整數(shù)
%o無符號以八進(jìn)制表示的整數(shù)
%g把輸出的值按照%e或者%f類型中輸出長度較小的方式輸出
%p輸出地址符
%lu 32位無符號整數(shù)
%llu 64位無符號整數(shù)
這個程序好亂啊,沒有這么復(fù)雜吧。
void Josegh(void)
{int i,j,k,s1,w;
s1=s;
for(i=1;i=n;i++) p[i-1]=i; //這里是給p[100]賦初值,也就是實(shí)現(xiàn)題目中編號的要求
for(i=n;i=2;i--) //用i來控制沒出圈的總?cè)藬?shù)
{s1=(s1+m-1)%i; //這條語句的作用是找出報數(shù)后出圈人的下標(biāo),其中對i求余的作用是使報數(shù)按圈進(jìn)行(即報到尾后又從頭報)
if (s1==0) s1=i;
w=p[s1-1];
for(j=s1;j=i-1;j++) p[j-1]=p[j];//將出圈以后的人依次往前移
p[i-1]=w;}
}
文章題目:c語言報數(shù)出圈函數(shù) 圍圈報數(shù)c語言指針
文章分享:http://chinadenli.net/article30/hijhpo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、企業(yè)網(wǎng)站制作、品牌網(wǎng)站設(shè)計、Google、品牌網(wǎng)站制作、商城網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)