慕无忌1305470
2016-07-21 16:35
输出1-50所有的素数
#include <stdio.h>
int main()
{
int m,n;
for(m=2;m<=50;m++)
{
n=2;
while(n>=2 && n<50)
{
if (m%n == 0)
break;
}
n++;
}
if(m == n)
{
printf("%d ",m);
}
return 0;
}
while(n>=2 && n<50)判断错了。
n++;位置错了。
for(m=2;m<=50;m++)
{
}大括号位置错了。
if (m%n == 0) if后虽然可以有空格,不过本题通过不了。
解释:
大括号错了你可以理解为
if(m == n)
{
printf("%d ",m);
}
的位置错了。
n>=2 && 一定通过,因为每次循环n都重新被赋初值。无意义。
n<50 按你的思路应该是51,就算能通过,无意义的运算过多。
n++不在while循环内。
{ } 大括号, if(m == n)判断应该在for循环内。
#include<stdio.h>
int main()
{
int x,y,m,n;
for(x=2;x<=50;x++)
{
for(y=2;y<x;y++)
{
if(x%y==0)
{
break;
}
}
if(x==y)
{
printf("%d\t",x);
}
}
printf("\n\n\n");
for(m=2;m<=50;m++)
{
n=2;
while(n<m)
{
if(m%n == 0)
{
break;
}
n++;
}
if(m==n)
{
printf("%d\t",m);
}
}
return 0;
}
没错啊 应该是网站的编译器的问题
C语言入门
926028 学习 · 20793 问题
相似问题