关于for循环

qgqch2008 2010-07-25 01:05:08
一个计算小于输入数字的所有素数程序,帮忙看一下
#include<stdio.h>
int main()
{
int a,i,j,m;
scanf("%d",&a);
for(i=2;i<=a;i++)
{
m=1;//m在这儿就正确
for(j=2;j*j<i;j++)
if(i%j==0)m=0;
if(m)printf("%4d",i);
}
return 0;
}

#include<stdio.h>
int main()
{
int a,i,j,m;
scanf("%d",&a);
for(i=2,m=1;i<=a;i++)//m在这里就不对
{
for(j=2;j*j<i;j++)
if(i%j==0)m=0;
if(m)printf("%4d",i);
}
return 0;
}
...全文
222 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wade_2003 2010-07-25
  • 打赏
  • 举报
回复
第一种代码,每次都会执行m=1的情况;
第二种代码,m=1只会执行一次;
单步调试就可以看到
qazwhl845174869 2010-07-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 baihacker 的回复:]
for (X;Y;Z)
X只是进入的时候才执行,在循环过程中就不执行了撒。
[/Quote]
正解
elegant87 2010-07-25
  • 打赏
  • 举报
回复

//第二个代码改了一下
#include<stdio.h>

int main()
{
int a,i,j,m;
scanf("%d",&a);
printf("1 ");
for(i=2;i<a;++i) //m在for中只是在开始的时候初始化为1
{
m=1;//每次初始为1
for(j=2;j*j<a;j++) //此处为j*j<=a
if(i%j==0)
m=0;
if(m)
printf("%-4d",i);
}
system("pause");
return 0;
}
wxwlll 2010-07-25
  • 打赏
  • 举报
回复
当然了,m在参数处只有初始化时才执行一次,m在里面时是每循环一次执行一次
yxqyrh 2010-07-25
  • 打赏
  • 举报
回复
第一段是执行很多次,第二段的m初始化一次
ffandkk 2010-07-25
  • 打赏
  • 举报
回复
楼上很多正解,但你代码有问题,求不对小于输入数字的所有素数。
hg6332_163_com 2010-07-25
  • 打赏
  • 举报
回复
for(表达式1;表达式2;表达式3)
3个表达式在for语句第一次循环前就执行一次,而且表达式2、表达式3每次循环一次前也都会再执行一次,但只有表达式1是只执行一次的,就是第一次循环前执行的那一次
zhangweiit 2010-07-25
  • 打赏
  • 举报
回复
for(i=2,m=1;i<=a;i++)
这个m=1,它会在代码进入循环体的时候,先执行,
只会执行一次,而且是在进入循环体的时候,马上执行

for(i=2,m=1;i<=a;i++,m=1)
第二个m=1 ,他会在每次循环之后,执行
zhangweiit 2010-07-25
  • 打赏
  • 举报
回复
可行是什么意思,执行结果正确吗?

第二段代码,编译肯定是没问题的
只是执行结果会不一样
要稍微改一下


#include <stdio.h>


int main()
{
int a,i,j,m;
scanf("%d",&a);

for(i=2,m=1;i<=a;i++,m=1)//m=1加在这里,与加在循环体里,效果是一样的
{
for(j=2;j*j<i;j++)
if(i%j==0)m=0;
if(m)printf("%4d",i);
}

fflush(stdin);
getchar();
return 0;
}


qgqch2008 2010-07-25
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 baihacker 的回复:]

for (X;Y;Z)
X只是进入的时候才执行,在循环过程中就不执行了撒。
[/Quote]再问一句,我用的是vc6,可能在其他编译器里,第二个代码是可行的?
baihacker 2010-07-25
  • 打赏
  • 举报
回复
for (X;Y;Z)
X只是进入的时候才执行,在循环过程中就不执行了撒。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧