1樓:網友
首先1不是完數,完數的因子相加時不能包括完數本身。比如6也是6的因子,總不能讓6=1+2+3+6吧,然後的一些問題我再程式中指出:
#include
int main(void)
int i, j, s = 1;
for(i = 1;i <=200; i++)for(j = 2; j <=i / 2; j++)if(i/j==0)
s = s * j; /因子相加。
if(s ==i)
printf("%d=1", i);
for(j = 2; j <=i / 2; j++)if(i / j ==0)
printf("+d", j);
printf("");
return 0;//刪除此句,主函式中要返回值給誰用啊。
一次迴圈後s的值改變了,需返回到1
以下是改後的程式:
#include
int main(void)
int i, j, s = 1;
for(i = 2;i <=200; i++)for(j = 2; j <=i / 2; j++)if(i/j==0)
s = s + j;
if(s ==i)
printf("%d=1", i);
for(j = 2; j <=i / 2; j++)if(i / j ==0)
printf("+d", j);
printf("");
s=1;
在c語言中,電腦程式通常有哪幾種錯誤?
2樓:大野瘦子
1、系統錯誤:這是指程式沒有語法錯誤和邏輯錯誤,但程式的正常執行依賴於某些外部條件的存在,如果這些外部條件缺失,則程式將不能執行。
2、語法錯誤:這是指程式中含有不符合語法規定的語句,例如關鍵字或符號書寫錯誤(將printf寫成print、將陣列元素引用寫成a(2)等)、使用了未定義的變數、括號不配對等。
3、邏輯錯誤:這是指程式中沒有語法錯誤,可以通過編譯、連線生成可執行程式,但程式執行的結果與預期不相符的錯誤。
c語言中的,c語言中的EOF
全文結束就是文字的結束,0 是字串結尾字元,在螢幕上敲的話,linux下輸入ctrl d,windows下輸入ctrl z,os下輸入f4,就能輸入eof。兩個while語句,前面乙個判斷讀取字元是否為eof,後面乙個判斷讀取字元是否為換行字元。如果敲回車的話,沒有eof,只有 r,r是回車符。全文...
c語言中程式設計序1! 2! 320 輸出
能用,只是 d會出現溢滿情況,即所求數值大於d的範圍。22.15e 表示用十進位制輸出,其中22表示輸出的實數字數,15表示位數部分小數字數。int main printf total is 22.15e n s getch 22.15e用10的n次方輸出,d的範圍太小,只能輸出3萬左右,而20!這...
c語言程式問答,C語言程式問答
回答您好,可以把問題描述的清楚一些 提問你幫我看下 錯了 回答嗯嗯,等一會 printf那塊,計算表示式不能寫雙引號裡啊 旺柴 這個if else也有問題 跟題目沒對應上 小於0的情況裡,不應該判斷是不是大於0小於15更多9條 結果 c1 a,c4 d c5 d 82,164 14,80,4 c 3...