下列程序的功能是:選取出100以上1000以內(nèi)所有個位數(shù)字與十位數(shù)字之和被10除所得余數(shù)恰是百位數(shù)字的素數(shù)(如293)。計算并輸出上述這些素數(shù)的個數(shù)CNT以及這些素數(shù)值的和SUM。請編寫函數(shù)COUNTvalue()實現(xiàn)程序要求,最后調(diào)用函數(shù)WRITEDAT()把結(jié)果CNT和SUM輸出到文件OUT.DAT中.注意:部分源程序已給出。請勿改動主函數(shù)main()和函數(shù)readwriteDAT()的內(nèi)容。 #include <stdio.h>int cnt, sum;void countValue(){}void writeDAT(){FILE *fp;fp = fopen("out.dat", "w");fprintf(fp, "%d\n%d\n", cnt, sum);fclose(fp);}void main(){cnt = sum = 0;countValue();printf("素數(shù)的個數(shù)=%d\n", cnt);printf("滿足條件素數(shù)值的和=%d", sum);writeDAT();}我的解答是:int i, j, half, hun, ten, data,cnt=0,sum=0;for (i=101; i<1000; i++){hun = i/100;ten = i%100/10;data = i%10;if (hun == (ten+data)%10){half = i/2;for (j=2; j<half; j++)if (i%j == 0)break;if (j >= half){cnt++; sum += i;}}}輸出是:素數(shù)的個數(shù)=0滿足條件素數(shù)值的和=0
2 回答

慕仙森
TA貢獻(xiàn)1827條經(jīng)驗 獲得超8個贊
int i, j, half, hun, ten, data,cnt=0,sum=0;
你等于定義了一個新的cnt、sum,是局部變量,全局變量cnt、sum并未改變

智慧大石
TA貢獻(xiàn)1946條經(jīng)驗 獲得超3個贊
你在countValue()函數(shù)中又定義了變量cnt,sum(與全局變量同名);這樣就把全局變量cnt,sum給屏蔽掉了.
你在countValue()中對cnt,sum的操作都是在操作你那個函數(shù)中的局部變量.
而你在main函數(shù)中又是操作的全局變量.countValue()沒有起到修改全局變量的作用.所以它的值還是0.
- 2 回答
- 0 關(guān)注
- 162 瀏覽
添加回答
舉報
0/150
提交
取消