【2013年11月12号】日记
生活随笔
收集整理的這篇文章主要介紹了
【2013年11月12号】日记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 /* 一個數如果恰好等于它的因子之和, 則這個數稱為“完數”。 編寫程序寫出1000以內的完數;
2 我一開始錯誤的程序*/
3 #include <stdio.h>
4 int main()
5 {
6 int i, j, ,sum=0;
7
8 for(i=2; i<1000; i++)
9 {
10 for(j=1; j<i; j++)
11 {
12 if(i%j==0)
13 sum+=j; //錯誤之處, sum沒有還原成0; 導致sum是所有因子的和
14 }
15 if(sum==i)
16 printf("%d\n", i);
17 }
18
19 return 0;
20 }
21 /*
22 在Vc++6.0中的輸出結果是:
23 Press any key to continue
24 */
?
這個程序的錯誤之處是個比較簡單的錯誤, 但當時自己思考了很長時間也沒想到, 歸根結底原因還是自己的懶惰, 沒有按照郝斌老師說的一步一步用一些數來實驗, 而是自己一味的空想, 導致沒有找到, 引此為鑒!
心得:以后如果遇到自己無法調試錯誤的程序, 一定得一步一步的用數去試,腳踏實地,直至成功!
?
1 /* 2 正確的程序(在李方的幫助下) 3 */ 4 #include <stdio.h> 5 int main() 6 { 7 int i, j, sum; 8 9 for(i=2; i<1000; i++) 10 { 11 for(j=1,sum=0; j<i; j++) // 關鍵的一步:將sum的值在因子循環的時候賦為零 12 { 13 if(i%j==0) 14 sum+=j; 15 } 16 if(sum==i) 17 printf("%d\n", i); 18 } 19 20 return 0; 21 } 正確的程序?
?第二個程序:
1 /*2 用40元錢買西瓜、蘋果和梨共100個,且三種水果都有。已知蘋果0.4元一個, 西瓜4元一個, 梨0.2元一個。問可以買多少個?3 */4 #include <stdio.h>5 int main()6 {7 int x, y, z;8 if(x+y+z==100) //錯誤之處:沒有給x y z賦值, 計算機不會自動去試數9 if(0.4*x+4*y+0.2*z==40) 10 { 11 printf("x = %d\n", x); 12 printf("y = %d\n", y); 13 printf("z = %d\n", z); 14 } 15 16 return 0; 17 } 18 /* 19 Press any key to continue 20 */心得:編程序時要給里面的變量通過賦值來讓計算機進行判斷,而不是直接讓計算機去試數。
1 #include <stdio.h> 2 3 int main() 4 { 5 int x, y, z; 6 7 for(x=1; x<98; x++) 8 { 9 for(y=1; y<98; y++) 10 { 11 z = 100-x-y; 12 if(0.4*x+4*y+z*0.2==40) 13 printf("%d, %d, %d\n", x, y, z); 14 } 15 } 16 17 return 0; 18 } 正確的程序2?
轉載于:https://www.cnblogs.com/a952764934/p/3421165.html
總結
以上是生活随笔為你收集整理的【2013年11月12号】日记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一些 Google 搜索词
- 下一篇: 如何让U盘支持大于4G的文件