C语言多重for语句的运算过程具体怎么样的

#include#includeintmain(intargc,char*argv[]){inta,b,i;scanf("%d",&a);for(i=a;i>0;i--)... #include#includeint main(int argc, char *argv[]){ int a,b,i; scanf("%d",&a); for (i=a;i>0;i--) { for (b=2;b<i;b++) if (i%b==0) break; if (b==i) { printf("The max prime number is %d.\n",i); break; }} system("PAUSE"); return 0;}比如这个求最大素数的 是怎么样循环运算的··· 展开
 我来答
qiminixi
2014-03-24 · TA获得超过819个赞
知道小有建树答主
回答量:552
采纳率:0%
帮助的人:240万
展开全部

代码对齐如下:

#include <stdio.h>
int main(int argc, char *argv[])
{
    int a,b,i;
    scanf("%d",&a);
    for (i=a;i>0;i--)
    { 
for(b=2;b<i;b++)  
            if (i%b==0)   break; 
if (b==i)  

     printf("The max prime number is %d.\n",i);   
     break;   
 }
    }
    system("PAUSE");   
    return 0;
}

第一个for循环表示从最大的数开始,发现的第一个素数就是最大的素数。比如输入a=12,第一次循环i=12(不是素数),第二次循环i=11(是素数),并且11就是最大的素数。

第二循环用来判断i是不是素数。如果i是素数的话,从b=2到b=i-1的数都不能整除i,于是for(b=2;b<i;b++)会一直循环到b=i(这时循环会自动结束);如果i不是素数的话,循环会因为执行了break导致退出循环后b<i。所以后面的用(b==i)来判断i是不是素数,如果不是的话,b小于i;如果是的话,b等于i。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式