亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

結果明顯是錯的。標準解答第一行少了cnt=0,sum=0,得到正確答案,這是為什么?

結果明顯是錯的。標準解答第一行少了cnt=0,sum=0,得到正確答案,這是為什么?

PHP
肥皂起泡泡 2023-03-20 17:13:35
下列程序的功能是:選取出100以上1000以內所有個位數字與十位數字之和被10除所得余數恰是百位數字的素數(如293)。計算并輸出上述這些素數的個數CNT以及這些素數值的和SUM。請編寫函數COUNTvalue()實現程序要求,最后調用函數WRITEDAT()把結果CNT和SUM輸出到文件OUT.DAT中.注意:部分源程序已給出。請勿改動主函數main()和函數readwriteDAT()的內容。 #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("素數的個數=%d\n", cnt);printf("滿足條件素數值的和=%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;}}}輸出是:素數的個數=0滿足條件素數值的和=0
查看完整描述

2 回答

?
慕仙森

TA貢獻1827條經驗 獲得超8個贊

int i, j, half, hun, ten, data,cnt=0,sum=0; 
你等于定義了一個新的cnt、sum,是局部變量,全局變量cnt、sum并未改變

查看完整回答
反對 回復 2023-03-22
?
智慧大石

TA貢獻1946條經驗 獲得超3個贊

你在countValue()函數中又定義了變量cnt,sum(與全局變量同名);這樣就把全局變量cnt,sum給屏蔽掉了.
你在countValue()中對cnt,sum的操作都是在操作你那個函數中的局部變量.
而你在main函數中又是操作的全局變量.countValue()沒有起到修改全局變量的作用.所以它的值還是0.

查看完整回答
反對 回復 2023-03-22
  • 2 回答
  • 0 關注
  • 165 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號