61.已知在文件IN.dat中存有若干個(少于200個)四位數(shù)字的正整數(shù),函數(shù)ReadDat()讀取這若干個正整數(shù)并存入數(shù)組number中。請編寫函數(shù)CalValue(),其功能要求是:①求出文件中共有的正整數(shù)個數(shù)totNum;②求這些數(shù)右移1位后,產(chǎn)生的新數(shù)是奇數(shù)的數(shù)的個數(shù)totCnt以及滿足此條件的這些數(shù)(右移前的值)的算術(shù)平均值totAve。最后調(diào)用函數(shù)writeDat()把所求的結(jié)果輸出到OUT.dat文件中。
【答案】
void CalValue(void)
{ int i, data;
for (i=0; i { if (!number[i]) break; if (number[i] > 0) totNum++; data = number[i]>>1; if (data%2) { totCnt++; totAve += number[i]; } } totAve /= totCnt; } 62.已知數(shù)據(jù)文件IN.dat中存有200個四位數(shù),并已調(diào)用讀函數(shù)readDat()把這些數(shù)存入數(shù)組a中,請編寫函數(shù)spellNum(),其功能是:把個位數(shù)字和千位數(shù)字重新組成一個新的二位數(shù)(新二位數(shù)的十位數(shù)字是原四位數(shù)的個位數(shù)字,新二位數(shù)的個位數(shù)字是原四位數(shù)的千位數(shù)字),以及把百位數(shù)字和十位數(shù)字組成另一個新的二位數(shù)(新二位數(shù)的十位數(shù)字是原四位數(shù)的百位數(shù)字,新二位數(shù)的個位數(shù)字是原四位數(shù)的十位數(shù)字),如果新組成的兩個二位數(shù)均是偶數(shù)并且兩個二位數(shù)中至少有一個數(shù)能被9整除,同時兩個新數(shù)的十位數(shù)字均不為0,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中,并要計算滿足上述條件的四位數(shù)的個數(shù)cnt。最后main()函數(shù)調(diào)用寫函數(shù)writeDat(),把結(jié)果cnt以及數(shù)組b中符合條件的四位數(shù)輸出到OUT.dat文件中。 【答案】 void spellNum() { int i, thou, hun, ten, data, j; int ab, cd; for (i=0; i { thou = a[i]/1000; hun = a[i]%1000/100; ten = a[i]%100/10; data = a[i]%10; if (data==0 || hun==0) continue; ab = 10*data+thou; cd=10*hun+ten; if ((ab%9==0 || cd%9==0) && ab%2!=1 && cd%2!=1) { b[cnt] = a[i]; cnt++; } } for (i=0; i for (j=i+1; j if (b[i] < b[j]) { data = b[i]; b[i] = b[j]; b[j] = data; } } 63.在文件IN.dat中有200組數(shù)據(jù),每組有3個數(shù),每個數(shù)均是三位數(shù)。函數(shù)Rdata()讀取這200組數(shù)據(jù)存放到結(jié)構(gòu)數(shù)組aa中,請編寫函數(shù)greatSort(),其功能是:要求在200組數(shù)據(jù)中找出條件為每組中的第1個數(shù)大于第2個數(shù)加第3個數(shù)的和,其中滿足條件的組數(shù)作為函數(shù)greatSort()的返回值,同時把滿足條件的數(shù)據(jù)存入結(jié)構(gòu)數(shù)組bb中,再對bb中的數(shù)據(jù)按照每組數(shù)據(jù)的第1個數(shù)加第3個數(shù)之和的大小進(jìn)行升序排列(第1個數(shù)加第3個數(shù)的和均不相等),排序后的結(jié)果仍重新存入結(jié)構(gòu)數(shù)組bb中。最后調(diào)用函數(shù)Wdata(),把結(jié)果bb輸出到OUT.dat文件中。 【答案】 int greatSort() { int i, j, count = 0; data val; for (i=0; i<200; i++) if (aa[i].x1 > aa[i].x2+aa[i].x3) { bb[count] = aa[i]; count++; } for (i=0; i for (j=i+1; j if (bb[i].x1+bb[i].x3 > bb[j].x1+bb[j].x3) { val = bb[i]; bb[i] = bb[j]; bb[j] = val; } return count; }
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |