c語言程式設計求糾錯,簡單的C語言程式求糾錯

時間 2022-10-24 23:55:43

1樓:天馬

while(scanf("%d",&n)!=eof)

這個迴圈出錯了,如果按你這個**來執行的話,每次讀入乙個n的值,迴圈裡都是只計算一次a的值,a的值要麼是sg(n),要麼是sg(a),然後繼續讀入新的n的值。

要想滿足「如果結果是兩位數或者包括更多位的數字,那麼再把這些數字加起來。如此進行下去,直到得到是一位數為止。」這個要求的話,在迴圈裡還得加上乙個迴圈,反覆計算a的值,直到其為一位數。

2樓:匿名使用者

你的程式肯定不對這是定下的,因為要是第二次a還大於10,那麼就不對了所以a=sg(n);

if(a>=10)

a=sg(a);

這裡是要用迴圈來做的

don=sg(n)

while(n<10);

因為至少要計算一次,所以用do--while迴圈這個判斷while可能有錯,你試驗一下吧,要是錯了,變成n>=10即可

3樓:清河大俠

可能和輸入的整數太大有關。你的資料都是int型,pc機上通常是16bit。資料範圍:

-32768 ~ + 32767。對於大於+32767的數值,就變成了負值。而你的程式要求的範圍是:

小於101000。因此超出了int的範圍。

把int改成long應該就ok了。scanf()和printf()等也相應改變:%d ==> %ld。

4樓:

這麼簡單的問題還問,gdb,自己除錯下不就知道哪錯了嗎?

5樓:

子程式裡頭,while(n)改為if(n/10!=0)試試

6樓:慕菀雪宸

首先,你缺了乙個大括號,其次,for(a=2;a<=d;a++);這句多了乙個分號,導致for迴圈其實就是乙個空語句,然後你再用break語句就會出錯,因為break語句不在for迴圈裡。最後,printf("m不是乙個素數\n");

和printf("m是乙個素數\n");這兩句列印出來的是「m不是乙個素數」或「

m是乙個素數」,而不是你輸進去的m值。

簡單的c語言程式求糾錯~

7樓:

#include

#include //因為程式中用到了sqrt這個數學函式,所以需要包含進math.h

main()

}else

else}}

以上就是在你的**基礎上修改的。

8樓:匿名使用者

邏輯不存在問題,將**中所有的printf("%f", &m)中後面的&去掉。

9樓:陌上

這個最好用複數的結構體來做。。

10樓:匿名使用者

#include

#include

main()

else

}else

else}}

C語言程式設計練習,求C語言程式設計練習的網站

這個基本上已經就包括了鍊錶的所有基本操作了。求c語言程式設計練習的 杭電oj。有大量適合初學者的題目,提交之後系統能分析語法錯誤,不過演算法上的錯誤就必須自己分析了。演算法錯誤分析沒有哪個 能做到。你想的倒是挺美的啊,還幫你分析啊,你怎麼不要求找乙個 可以在你不會的時候隨時給你講解呢。我做過的c語言...

C 簡單的程式設計問題,c語言程式設計問題

第乙個,傳遞進來的引數是乙個 char 型別,比如如果是字元 1 則轉換為整數型就是 49 也就是 1 的ascii編碼。0 的ascii是48 所以如果用 int c int 0 減出來以後就是整數 1 也就是把字元轉換為整數了,實際c 有個函式 atoi 推薦使用這個方法,第二個要拆開看 isd...

求 一簡單指標 c語言 程式設計的答案

include include include define typenum 4 define letter 0 define digit 1 define space 2 define others 3 int count char string,char type int index if st...

求一道C語言程式設計題 求n的階乘,c語言程式設計 輸入整數n,求n的階乘 並輸出。

思路 所謂n的階乘就是從1到n的累積,所以可以通過乙個for迴圈,從1到n依次求積即可。參考 include stdio.h int main 執行結果 例如求5的階乘 5120 求一道c語言程式設計題 求n的階乘 include long int fun int n int main void i...

求乙份簡單c語言大作業,幾道簡單的C語言題目

我好象見過這幾個題啊,還是我的朋友問過我的呢,你是不是在福建莆田啊?認識叫張嘯的吧?告訴他,有個深圳的人喜歡她,呵呵。main printf d sum 乙個簡單的c語言題 為什麼需要編碼?因為計算機世界只有0和1之分,而現實世界,我們常用的是十進位制。為了讓計算機和現實世界聯絡起來,編碼便誕生了。...