为了账号安全,请及时绑定邮箱和手机立即绑定

程序到底哪里有问题?

程序到底哪里有问题?

C
小唯快跑啊 2023-04-03 17:13:36
#include<stdio.h>int main(){int m,n,c,b,k,p,q,r,leap;scanf("%d%d",&m,&n);r=0;leap=0;for(k=m;k>=m&&k<=n;k++){b=0;p=k;while(k>0){c=k%10;b=b*10+c;k=k/10;}if(b==p){for(q=2;q<p;q++)if(p%q==0)break;if(q==p){leap=1;r=r+1;}elseleap=0;}elseleap=0;}if(leap=1)printf("%d",p);while(r%5==0)printf("\n");return 0;}
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

程序开始部分没什么问题,结尾一个接一个

是自己想乱了还是着急了?

如果刚学C 最好还是先列个流程 然后再写,不容易出错

改正后的程序如下,原因见注释


#include<stdio.h>int main(){ int m,n,c,b,k,p,q,r,leap; scanf("%d%d",&m,&n); r=0; leap=0; for(k=m;k>=m&&k<=n;k++) {  b=0;  p=k;  while(k>0)  {   c=k%10;   b=b*10+c;   k=k/10;  }  if(b==p)  {   for(q=2;q<p;q++)    if(p%q==0)     break;   if(q==p)   {    leap=1;          r=r+1;   }   else    leap=0;  }  else   leap=0;  k = p;//恢复k的值,下次循环用用的  //输出语句移到循环内,对每个回文素数做输出 if(leap==1)// ==判断 {//只有本身为回文素数时,判断是否需要输出换行  printf("%d ",p); if(r%5==0)//一次判断 不然死循环输出换行了  printf("\n"); } } return 0;}

 


查看完整回答
反对 回复 2023-04-05
  • 1 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信