報數問題,用c語言編寫程式

2025-06-22 15:35:09 字數 1826 閱讀 8092

1樓:網友

這個程式不難。

看看我寫的行吧。

#include

#include

int fun(int n)

return tmp;

void main()

c語言程式設計報數問題

2樓:網友

自己寫的,完整的程式,並附有測試的資料。

分別用連結串列和順序表實現了。樓主可以好好看看。

**我就不重複貼了。好運!

3樓:voyag_航

有n個人a1,a2…,an圍成一圈報數,每報到m的人就出隊#includevoid main() int i,k,m,n,*p,num[50];

c語言 報數問題

4樓:網友

第乙個思路問題,抄因為你襲沒有想到迴圈的問題bai,比如5個人,你這du個的演算法是zhi從1加到5求一次,而實際。

dao上這樣最多隻能踢出去5/3=1個人,把迴圈改成可以環形的就可以了,即只要總的人數大於1,一直迴圈下去踢人,這樣才就對了。

c語言 報數問題

5樓:網友

#include

#include

以迴圈佇列的資料結構實現。

時間複雜度t(n)

採用迴圈佇列資料結構,使得每次對陣列的訪問次數減少到最少。

int main(void)

置隊頭和隊尾的位置。

front=1;

rear=num;

i=1;//報數器置1,開始報數。

while(front!=rear)//當佇列中元素不止乙個時,迴圈。

如果出隊的人報數不符合條件。

elseprintf("倖存者是%d",cycle[front]);

free(cycle);

while(num!=0);

return 0;

方法二:(按你的要求)

#include

以純粹的思維方法實現。

時間複雜度t(n)

過程繁瑣,而且也不容易理解。

void main(void)

int result(int *p,int n,int m)

i++;if (i==n) i=0; // 報數到尾後,i恢復為0

while(*p==0) p++;

return *p;}

c語言的報數問題(用指標)

6樓:未知數

唉,同學,我應該和你是乙個學校的……這道題也糾結了好久……下面是我填的程式,答案是正確的,不過應該還可以再優化。

我曾經卡住的地方已經標出來了,不知道對你有沒有幫助。

#include

int main(void)

while(count}p = num;

while(*p == 0)

p++;printf("last no is: %d", *p);}

c語言,報數問題

7樓:網友

你這**想法有問題:消去3的倍數的數,在第一次,還可以,第二次,則不知道該如何消除了,因為,數的排列變化了(有了間隔),而且,你也沒有考慮,數到最大值後,程式該怎麼辦?

8樓:網友

這個問題是著名的josephus排列,就是要用指標和連結串列才是正確的思路。不用指標就暫時放置這題。若有非指標解你完全可以採納他,若沒有用指標正確寫的,請結貼。

用c語言編寫程式,求s

staticvoidmain stringargs console.writeline 結果回 是答 sum console.readkey 用c語言編寫程式,計算s 1 1 2 1 2 3 1 2 3 n include usingnamespacestd intmain cout 結果2為 re...

c語言程式設計,編寫程式,求10 用C語言

程式1 題目 有1 2 3 4個數字,能組成多少個互不相同且無重複數字的三位數?都是多少?1.程式分析 可填在百位 十位 個位的數字都是1 2 3 4。組成所有的排列後再去 掉不滿足條件的排列。2.程式源 main 程式2 題目 企業發放的獎金根據利潤提成。利潤 i 低於或等於10萬元時,獎金可提1...

編寫程式用c語言不是c儘量多做視程式質量

1.char s 100 int r 記錄空格位置 for i 0 i 100 i if s i 0 break 檢測到 結束 for i i 1 i 0 i if s i break 往回檢測那裡不是空格 r i 1 尾部空格開始的位置 s r 0 新字串的結束標識 2int i char s 1...