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...