某網友:
我的到的C語言題(三級網絡技術) 時間:2005年4月3日 地點:中國礦業(yè)大學 題目: 已知數據文件in.dat中存有200個四位數,并已調用讀函數ReadDat()把這些數存入數組a中,請編制一函數jsValue(),其功能是:求出千位數上的數加個位數上的數等于百位數上的數加十位數上的數的個數cnt,再把所有滿足此條件的四位數依次存入數組b中,然后對數組b的四位數按從小到大的順序進行排序,最后調用寫函數writeDat()把結果輸出到out.dat文件。 例如:6712,6+2=7+1,則該數滿足條件存入數組b中,且個數cnt=cnt+1。 8129,8+9<>1+2,則該數不滿足條件忽略。 部分源程序存在文件prog1.c中。 程序中已定義數組:a[200],b[200],已定義變量:cnt 請勿改動主函數main()、讀函數ReadDat()和寫函數writeDat()的內容。 #include <stdio.h> int a[200],b[200],cnt=0;
jsValue() {int i,qw,bw,sw,gw,j; for(i=0;i<200;i++) {qw=a[i]/1000; bw=a[i]%1000/100; sw=a[i]%100/10; gw=a[i]%10; if(qw+gw==bw+sw) b[cnt++]=a[i]; } for(i=0;i<cnt-1;i++) for(j=i+1;j<cnt;j++) if(b[i]>b[j]) {qw=b[i]; b[i]=b[j]; b[j]=qw;} }
main() { int i;
readDat(); jsValue(); writeDat(); printf("cnt=%d\n",cnt); for(i=0;i<cnt;i++) printf("b[%d]=%d\n",i,b[i]); }
readDat() { FILE *fp; int i; fp=fopen("in.dat","r"); for(i=0;i<200;i++)fscanf(fp,"%d,",&a[i]); fclose(fp); }
writeDat() { FILE *fp; int i; fp=fopen("out.dat","w"); fprintf(fp,"%d\n",cnt); for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]); fclose(fp); } |
·Exam8視線預告:2009年9月計算機等考試題點評 (2009-9-17 15:25:44)
·2009年9月全國計算機等級考試時間及科目介紹 (2009-9-14 17:32:07)
·梧州市2009年9月計算機等級考試時間調整通知 (2009-9-14 17:28:26)
·考試吧考后首發(fā)2009年9月計算機等考試題答案通知 (2009-9-11 15:47:25)
·西藏:2009年下半年計算機等級考試報名時間 (2009-6-21 15:04:35)