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ù)之和的大小進行升序排列(第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)蒙古 |