題目10(整數各位數運算排序題)
已知數據文件in.dat中存有300個四位數,并已調用讀函數ReadDat()把這些數存入數組a中,請編制一函數jsValue(),其功能是:求出千位數上的數加百位數上的數等于十位數上的數加個位數上的數的個數cnt,再把所有滿足此條件的四位數依次存入數組b中,然后對數組b的四位數按從大到小的順序進行排序,最后調用寫函數writeDat()把結果輸出到out.dat文件。
例如:7153,7+1=5+3,則該數滿足條件存入數組b中,且個數cnt=cnt+1。
8129,8+1<>2+9,則該數不滿足條件忽略。
jsValue()
{ int i,j,qw,bw,sw,gw;
for(i=0;i<300;i++)
{ qw=a[i]/1000; bw=a[i]/100%10;
sw=a[i]%100/10; gw=a[i]%10;
if(qw+bw==sw+gw) b[cnt++]=a[i];
}
for(i=0;i for(j=i+1;j if(b[i]
} ************************************************************************** ★☆題目11 (整數各位數運算及排序題) 在文件in.dat中有200組數據,每組有3個數,每個數均是三位數。函數ReadDat()讀取這200組數據存放到結構數組aa中,請編制函數jsSort(),其函數的功能是:要求在200組數據中找出條件為每組中的第一個數大于第二個數加第三個數的和,其中滿足條件的組數作為函數jsSort()的返回值,同時把滿足條件的數據存入結構數組bb中,再對bb中的數據按照每組數據的第一個數加第三個之和的大小進行升序排列(第一個數加第三個數的和均不相等),排序后的結果仍重新存入結構數組bb中,最后調用函數writeDat()把結果bb輸出到 文件out.dat中。 int jsSort() { int i,j,cnt=0; data xy; for(i=0;i<200;i++) if(aa[i].x1>(aa[i].x2+aa[i].x3)) bb[cnt++]=aa[i]; for(i=0;i for(j=i+1;j if(bb[i].x1+bb[i].x3>bb[j].x1+bb[j].x3) { xy=bb[i]; bb[i]=bb[j]; bb[j]=xy;} return cnt; } ************************************************************************* 整數統(tǒng)計運算題 ★☆題目12整數統(tǒng)計運算題) 已知在文件IN.DAT中存有若干個(個數<200)四位數字的正整數,函數ReadDat()讀取這若干個正整數并存入數組xx中。請編制函數CalValue(),其功能要求:1、求出這文件中共有多少個正整數totNum;2、求這些數右移1位后,產生的新數是偶數的數的個數totCnt,以及滿足此條件的這些數(右移前的值)的算術平均值totPjz,最后調用函數writeDat()把所求的結果輸出到文件OUT.DAT中。 void CalValue(void) {int i,data; for(i=0;i if(xx[i]>0) { totNum++; data=xx[i]>>1; if(data%2==0){totCnt++;totPjz+=xx[i];} } if(totCnt==0) totPjz=0; else totPjz/=totCnt; }
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內蒙古 |