1樓:匿名使用者
n=n*i;
改為i=i*n
因為你的n才是迴圈的條件,在這裡面的n是不斷變化的,這個迴圈應該是轉不到頭的
如果你的意思並非如此,那你需要再設定乙個變數來替代這個n
2樓:匿名使用者
看了大家的回答,我來點評一下,嚯嚯,希望對你有點幫助。
1. net533 的回答有點搞笑,他發現你程式的問題了,但是改錯了。i=i*n 這樣改的話,i的變化就不是你所希望的每次加1了。
2. soloxmas給的**不錯,使用迭代的方法做的,階乘常用的演算法。
3. lookyou23的**也不錯,用for迴圈做的,不需要呼叫子函式,速度會比上一種快。
4. back_bin給的**有個問題,沒有考慮到 n=0 的情況, 眾所周知,0! = 1。他的**對於0的計算結果還是0。
5. veket_linux 看起來比較趕時間啊,回答的比較簡潔,不過能看懂就好。
綜上所述,你自己選乙個適合自己的**吧。希望我的這些廢話能對你有一點點幫助哈~~飄過~~
3樓:匿名使用者
#include
main()
printf("%d",k);
}正確的應該這樣 你的是邏輯錯誤。。主要錯在n=n*i;
4樓:憂傷海域
#include
void main()
printf("%d",j);
}n是輸入的數值,不應再改變,這樣程式的迴圈用以發生不可測運算。試試這個程式。
5樓:
我知道 你的思路沒有問題 再定義 int t=1;
迴圈體裡的語句改為 k=k*i;
就好了希望對你有幫助
有什麼問題可以找我
6樓:
n既然已經做了限制迴圈次數的條件 ,就應該是個固定的值而 n=n*i;將導致n變大!
另外定義個 x
x = 1;
for(......)
7樓:
#include
void main()
printf("%d\n",sum);
}n的值一直變化,所以沒結束條件
8樓:依留昔影
#include
main()
c語言設計1設計程式來模擬簡單的手持
厚鴻騫 首先你輸入的表示式是乙個字串,應該放在陣列裡,然後你得用程式來解析這個字串轉化為四則運算,加減乘除括號這些在一起的話你得考慮優先順序,自己多想想吧 int cal int a,char c,int b return 0 做1個自定義函式 就行了 c語言設計 1 設計乙個程式來模擬乙個簡單的手...
C語言程式設計問題,C語言程式設計問題 設計乙個程式,從鍵盤輸入a b c三個整數,將它們按照從大到小的次序輸出?(最
tt如果等於 a 那麼pp 0 裡的值應該 1,即 pp a a 即 pp tt a a a 0 b a 1 z a 25 明白了嗎 tt是乙個字元。也就是整數型式的ascii碼。用這個字元減掉 a 的值也就成了陣列的下標值。因為字母是按順序排列的。然後陣列下標有了,就找到那個元素值進行 操作。比如...
c語言程式大神幫忙設計一下
自我程式設計 按照題目要求 1 實現檔案寫入功能,一次寫入一個職工資訊。2 實現查詢功能 包含4種條件查詢 3 實現資訊刪除和修改並寫入檔案。根據題意,資料用結構陣列儲存,且職工編號唯一性,因此單獨兩個函式計算資訊長度和編號。除條件查詢函式和讀取檔案的函式,不會自行free釋放記憶體。如你寫 呼叫,...