C语言编程判断素数
这是我的程序:#include<stdio.h>voidmain(){inti,n;scanf("%d",&i);for(n=2;n<i;n++)if(i%n==0){p...
这是我的程序:
#include<stdio.h>
void main()
{
int i,n;
scanf("%d",&i);
for(n=2;n<i;n++)
if(i%n==0)
{
printf("not prime\n");
break;
}
else
{
printf("prime\n");
break;
}
}
可是为什么输入9、15、51等数时运行出现“prime”(素数)呢? 展开
#include<stdio.h>
void main()
{
int i,n;
scanf("%d",&i);
for(n=2;n<i;n++)
if(i%n==0)
{
printf("not prime\n");
break;
}
else
{
printf("prime\n");
break;
}
}
可是为什么输入9、15、51等数时运行出现“prime”(素数)呢? 展开
7个回答
展开全部
...for只循环了一次,if else 里的两个 break 跳出 for循环...
故楼主的程序但凡2能整除的输出not prime,否则输出prime...
所以出现"输入9、15、51等数时运行出现“prime”(素数)"
故楼主的程序但凡2能整除的输出not prime,否则输出prime...
所以出现"输入9、15、51等数时运行出现“prime”(素数)"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
程序本身就是错的,修改如下:
void main()
{
int i,n;
int flag = 0;
scanf("%d",&i);
for(n=2;n<i;n++)
{
if(i%n==0)
{
flag = 1;
break;
}
}
if (flag)
printf("no primer\n");
else
printf("primer\n");
}
void main()
{
int i,n;
int flag = 0;
scanf("%d",&i);
for(n=2;n<i;n++)
{
if(i%n==0)
{
flag = 1;
break;
}
}
if (flag)
printf("no primer\n");
else
printf("primer\n");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdio.h>
void main()
{
int i,n;
scanf("%d",&i);
for(n=2;n<i;n++)
{
if(i%n==0)
{
printf("not prime\n");
break;
}
else
{
printf("prime\n");
break;
}
} //for 循环要加{ ……}
}
void main()
{
int i,n;
scanf("%d",&i);
for(n=2;n<i;n++)
{
if(i%n==0)
{
printf("not prime\n");
break;
}
else
{
printf("prime\n");
break;
}
} //for 循环要加{ ……}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当然了你这个程序有问题,无论你输入哪个数,它都只循环一次就跳出整个for循环了!因为你两个小程序块里都加了break!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询