题目要求:给定一个数字范围,输出满足这些条件:
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;
}
原文地址:https://www.cnblogs.com/cnnnnnn/p/8543507.html
时间: 2024-10-30 16:46:19