C语言编写程序,找出100以内的所有素数,存放在一位数组中,并将所找到的素数按每行10个数的形式输出。 5
#include<math.h>main(){intm,i,h=0;for(m=1;m<=100;m++){for(i=2;i<=(m/2);i++){if(m%i==0...
#include <math.h>
main()
{
int m,i,h=0;
for(m=1;m<=100;m++)
{
for(i=2;i<=(m/2);i++)
{if(m%i==0)
break;
else printf("%-4d",m);h++;
if(h%10==0)
{printf("\n");}
break;
}
}
printf("\nThe total is %d",h);
}
这样编写为什么会出现一些不是素数的数字? 展开
main()
{
int m,i,h=0;
for(m=1;m<=100;m++)
{
for(i=2;i<=(m/2);i++)
{if(m%i==0)
break;
else printf("%-4d",m);h++;
if(h%10==0)
{printf("\n");}
break;
}
}
printf("\nThe total is %d",h);
}
这样编写为什么会出现一些不是素数的数字? 展开
1个回答
展开全部
#include<stdio.h>
int isprime(int n)
{
int i;
for(i=2;i<=n/2;i++){
if(n%i==0)
{
return 0;
}
}
return 1;
}
int main()
{
int i;
int count=0;
for(i=2;i<=100;i++)
{
if(isprime(i)){
count++;
printf("%d ",i);
if(count==10){
printf("\n");
count=0;
}
}
}
return 0;
}改了一下,笑磨态把判断碰源素数的给分离出一个函数了,
你两个循环可能有点问题。游配
int isprime(int n)
{
int i;
for(i=2;i<=n/2;i++){
if(n%i==0)
{
return 0;
}
}
return 1;
}
int main()
{
int i;
int count=0;
for(i=2;i<=100;i++)
{
if(isprime(i)){
count++;
printf("%d ",i);
if(count==10){
printf("\n");
count=0;
}
}
}
return 0;
}改了一下,笑磨态把判断碰源素数的给分离出一个函数了,
你两个循环可能有点问题。游配
追问
能具体说说到底那里出问题么 纠结了好久了 网上也看过了众多答案
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询