c语言指出错误位置,计算机2级考试--C语言真题--编程,求 帮我指出错误。若是小错,修改处在右侧指出。先谢谢了。...

匿名用户

1级

2014-09-26 回答

#include

#include

int isprime(int n){

int i;

for(i=2;i

if(n%i==0)

return 0;

return 1;

}

int prime_m(int n,int x[],long y[]){

int m,j=0,s[20]={0},a;

long M,rei;

for(m=2;m<=n;m++){

M=(long)pow(2,m)-1;

while(isprime(M)){ //这里应该使用if,而不是while

rei=M;

a=0;

while(rei)

{ s[a]=rei%10;

rei=rei/10;

a++;

}

printf("%d\n",M);

//应该在操作s[a]之前先进行a--,因为上面最后一次a++后,对应的s[a]没有赋值

if(s[a]%2==1){

for(;a=0;a--){ //for语句中间条件判断处不应该是a=0(这是赋值语句),应是a>=0

if(s[a]==1){

x[j]=m;

y[j]=M;

j++;

//这里已经找到,应该break

}

}

}

}

}

return j;

}

void main(){

int k,n,x[100],i;

long y[100];

FILE *fp;

fp=fopen("myf2.out","w");

printf("请输入n:\n");

scanf("%d",&n);

k=prime_m(n,x,y);

printf("%d\n",k);

for(i=1;i<=k;i++) //x[i]和y[i]应该成对输出,因此这里少个"{"

//另外,i的范围应该是[0,k-1],即for(i=0;i

fprintf(fp,"%d\n",x[i]); //我看要求的格式,这里是不是应该使用“\t”而不是"\n"?

fprintf(fp,"%d\n",y[i]);

//这里添加"}"

fprintf(fp,"\nMy exam number is : 00123");

fclose(fp);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值