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