55.已知在文件IN.dat中存有若干個(gè)(不多于200個(gè))四位數字的正整數,函數ReadDat()讀取這若干個(gè)正整數并存入數組number中。請編寫(xiě)函數CalValue(),其功能要求是:①求出文件中所有的正整數個(gè)數totNum;②求這些數中的各位數字之和是奇數的個(gè)數totCnt,以及滿(mǎn)足此條件的這些數的算術(shù)平均值totave。最后調用函數writeDat()把所求的結果輸出到OUT.dat文件中。
【答案】
void CalValue(void)
{ int i, thou, hun, ten, data;
for (i=0; i { if (!number[i]) break; if (number[i] > 0) totNum++; thou = number[i]/1000; hun = number[i]%1000/100; ten = number[i]%100/10; data = number[i]%10; if ((thou+hun+ten+data)%2) { totCnt++; totave += number[i]; } } totave /= totCnt; } 56.下列程序的功能是:計算500~800區間內素數的個(gè)數count,并按所求素數的值從大到小的順序排序,再計算其間隔加、減之和,即第1個(gè)素數-第2個(gè)素數+第3個(gè)素數-第4個(gè)素數+第5個(gè)素數……的值sum。請編寫(xiě)函數primeValue()實(shí)現程序的要求。最后調用函數writeDat(),把結果count和sum輸出到OUT.dat文件中。 【答案】 void primeValue() { int i, j, half, yy[100]; for (i=800; i>=500; i--) { half = i/2; for (j=2; j if (i%j == 0) break; if (j >= half) { yy[count] = i; count++; } } for (i=0, j=1; i { sum += j*yy[i]; j = j*-1; } } 57.下列程序的功能是:選出5000以下符合條件的自然數。條件是:千位數字與百位數字之和等于十位數字與個(gè)位數字之和,且千位數字與百位數字之和等于個(gè)位數字與千位數字之差的10倍。計算并輸出這些四位自然數的個(gè)數count以及這些數的和sum。請編寫(xiě)函數calValue()實(shí)現程序的要求,最后調用函數writeDat(),把結果count和sum輸出到OUT.dat文件中。 【答案】 void calValue() { int i, thou, hun, ten, data; for (i=5000; i>=1000; i--) { thou = i/1000; hun = i%1000/100; ten = i%100/10; data = i%10; if (thou+hun==ten+data && thou+hun==(data-thou)*10) { count++; sum += i; } } }
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |