永发信息网

C语言 for循环

答案:2  悬赏:50  手机版
解决时间 2021-08-15 04:54
  • 提问者网友:書生途
  • 2021-08-14 18:01

这是我写的证明大于3的相邻素数之和是6的倍数,可是怎么改都输出0,哪有问题吗?

#include<stdio.h>
main()
{
long n,k=0,i,a[10000];
for(n=5;n<10000;n++)
{
for(i=n-1;i>0;i--)
{
if(n%i!=0)
continue;
else break;
}
if(i==1)
{a[k]=n;k++;}
else break;
}
for(k=k-1;k>1;k--)
{if((a[k]+a[k-1])%6==0)
continue;
else k=-k;
}
printf("%d",k);
}

最后我还想问问有没有直接在循环里结束整个程序而不是break跳出循环,我很多时候在for里用if判断如果不是我就想直接退出了。

 

最佳答案
  • 五星知识达人网友:举杯邀酒敬孤独
  • 2021-08-14 18:37

逻辑有问题。


修改后如下:


for(n=5;n<10000;n++)
{
for(i=n-1;i>1;i--) 
{
if(n%i==0) 
break; 
}
if(i==1)
{a[k]=n;k++;}
  
}


for(k=k-1;k>1;k--)  因为k是从0开始的,这里要改成for(k=k-1;k>0;k--)才能判断全部数


结束程序可以用exit(); 还有return;

全部回答
  • 1楼网友:枭雄戏美人
  • 2021-08-14 19:51
exit();或用GoTo
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯