好人有好报:C语言求教:为什么这里从5开始就都不是素数了?
3个回答
展开全部
仔细看了你的程序,发现你的程序有个问题,你在定义变量a时,同时给它赋了初值1,而在整个循环当中,除了有一行中有a=0的语句,再没有a=1的语句。所以当x=4时,a被修改成了1,就一直是a=1,所以尽管x=5时,整个内循环都不会出现x%i=0,但a却仍然是1,所以才会出现从5开始都不是素数的结果,你在外循环开始的地方加一行a=1;试试,看能不能出行你想要的结果。
另外,你也可以把内循环条件改成
x=5,先试一下,看看这时会不会出现5是素数,出现了,就说明我分析的是对的。
另外,你也可以把内循环条件改成
x=5,先试一下,看看这时会不会出现5是素数,出现了,就说明我分析的是对的。
展开全部
#include #include #include #include int main(void) { int n = 0; printf("请输入一个正整数\n"); scanf("%d", &n); if (n < 0) { printf("输入为负整数,取绝对值求解\n"); n = -n; }//end if if (n == 0 || n == 1 ) { printf("0和1不属于质数问题讨论范围。
\n"); return 0; }//end if if (n == 2 || n == 3) { printf("%d是质数(prime number素数)。 \n", n); return 0; }//end if for(int i = 2; i \n", n); return 0; }//end if printf("%d是质数(prime number素数)。 \n", n); return 0; } 。
\n"); return 0; }//end if if (n == 2 || n == 3) { printf("%d是质数(prime number素数)。 \n", n); return 0; }//end if for(int i = 2; i \n", n); return 0; }//end if printf("%d是质数(prime number素数)。 \n", n); return 0; } 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
for(x=2;x<100;x++){
for(i=2,a=1;i<x;i++){
for(i=2,a=1;i<x;i++){
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询