c语言for语句简单问题

来源:百度知道 编辑:UC知道 时间:2024/09/22 05:27:38
下面是《c语言开发实例详解》上的一个源程序,本意是打印3-1000内的所有质数。但是这个程序是错的。
我的问题是第二个for语句管到哪里结束,第一个for语句又是管到哪句?if和else两个语句匹配吗?因为语句中没有{}.请解释。
/* 打印3-1000内的所有质数 */
#include <stdio.h>
main()
{
int i,j,n=0;
for(i=3;i<1000;i+=2)
for(j=2;j<i;j++)
if(i%j==0)
break;
else
{
n++;
printf("%3d%c",i,(n%20)?',':'\n');
}
}

#include <stdio.h>
main()
{
int i,j,n=0;
for(i=3;i<1000;i+=2)
{
for(j=2;j<i;j++)
{
if(i%j==0)
{
break;
}
else
{
n++;
printf("%3d%c",i,(n%20)?',':'\n');
}
}
}
}

//这样清楚了吗?

1. int i,j,n=0;
2. for(i=3;i<1000;i+=2)
3. {
4. for(j=2;j<i;j++)
5. {
6. if(i%j==0)
7. {
8. break;
9. }
10. else
11. {
12. n++;
13. printf("%3d%c",i,(n%20)?',':'\n');
14. }
15. }
16. }

把括号给你加上你就明白了
#include <stdio.h>
main()
{
int i,j,n=0;
for(i=3;i<1000;i+=2)
{
for(j=2;j<i;j++)
{ if(i%j==0)
break;
else
{
n