1樓:喬巴的海賊精神
#include
#define size 10 //總共的人數#define n 3 //報到n出局
struct child //定義鍊表
child[size];
int lastchild(struct child *p)else //否則的話,指標向下移動
}return p->num;
}void main()
child[size-1].num=size; //最後乙個小孩指向第乙個小孩
child[size-1].next=&child[0];
m=lastchild(head);
printf("%d\n",m);}
2樓:匿名使用者
二樓的解答不對的,沒這麼簡單。
先給你個提示你自己思考下:
1、n個數,從1開始計數,把每次從1到最後的人數完記為一圈,每圈可以得到幾個引數,如下:
刪除的人數:n/3(當n為3的倍數時,第二圈的開始數就不是從1開始,而是從1+n%3開始數,舉例:n=5,第二圈時,第乙個人,是數1+5%3 = 3,就好像在他前面加上了兩個人,即加上了n%3個人)
剩餘的人數:n - n/3
彌補n%3個人後,再計算:彌補後的總數為:t = n-n/3+n%3,第二遍迴圈剩餘的人數為:
t - t /3 ,再彌補。每次刪除的人,用數組裝起來(長度為n),最後沒有裝進陣列的即為答案。
你先思考下。
3樓:匿名使用者
//輸入圈中元素個數n(從1開始)和每次刪除的元素在環中的位置m(從0開始)
int lastremaining(int n, unsigned int m)
4樓:
才10 分.太少了..
C語言程式設計題目,C語言程式設計習題
vc 6.0執行通過 原創 如需改進,請另行說明 include include include include struct node stu 100 int n 0 void input printf 成績記錄新增成功 n void output void search class sum 0 ...
幫忙《C語言程式設計》的題目,C語言程式設計幫忙答題
一.選擇題 1 若a是float型變數,b是unsigned型變數,以下輸入語句 a 是合法的。a scanf 6.2f d a,b b scanf f n a,b c scanf f 3o a,b d scanf f f a,b 2 設以下變數均為int型別,則值不等於7的表示式是 c a x y...
c 程式設計,高手進 100,解答C 程式設計
你的意思沒懂到,舉個例子撒。回去幫你弄,十點鐘查收。解答c 程式設計 請問大家這道c 程式設計題怎麼做?求幫忙 先將輸入的數儲存到陣列,然後遍歷數字,判斷相鄰數字是否相同即可。使用乙個變數記錄當前是否處於數字連續的狀態,用於輸出中括號。乙個小技巧是給陣列多分配乙個位置並將其置為 1,方便判斷陣列最後...