1. 程式人生 > >2018.3 江蘇省計算機等級考試 C語言 編程題答案

2018.3 江蘇省計算機等級考試 C語言 編程題答案

otto font open nco hybrid post 輸出 bold gpo


題目要求:給定一個數字範圍,輸出滿足這些條件:

1.能被3整除;

2.包含數字5,

將滿足的數字放在特定的數組裏輸出、輸出這些數裏5出現的個數、數字的個數。

想起來有點傷心,本來很簡單的題,考試的時候程序寫錯一行,結果成了死循環,最後還沒找出來錯,下來以後才想起來。以後必須長點心。

代碼:

#include<stdio.h>
int flag(int x0,int x1,int b[],int *p);
int main(){
int i,intnumber,fivenumber;//數字的個數、5的個數
int b[301];//b存放滿足的數字
FILE *fp;
fp=fopen("myfile.out","w"
);

intnumber=flag(200,300,b,&fivenumber);
for(i=0;i<intnumber;i++){
printf("%d ",b[i]);//具體的輸出要求忘了,大致是這樣
fprintf(fp,"%d ",b[i]);
}
printf("5的個數:%d\n",fivenumber);
fprintf(fp,"%d\n",fivenumber);
fprintf(fp,"考號");
fclose(fp);
return 0;
}
int flag(int x0,int x1,int b[],int *p){
int intnumber,wei,flg,i,j,temp;
intnumber=*p=flg=0
;
for(i=x0;i<=x1;i++){
flg=0;
if(i%3==0){
temp=i;
wei=temp%10;
temp=temp/10;//當時寫成了i/10,所以成了死循環
for(j=0;wei>0;j++){
if(wei==5){
flg=1;
(*p)++;
}
wei=temp%10;
temp=temp/10;//同上面一樣
}
}
if(flg==1) {//這段代碼不要寫錯層,要寫在遍歷數字的這層
b[intnumber]=i;
intnumber++;
}
}
return intnumber;
}

2018.3 江蘇省計算機等級考試 C語言 編程題答案