所以我必须为学校编写代码。我做到了,但我的输出不是他们要求的方式。这段代码给出了两个不同数字之间的素数。所以我必须按行打印这些数字。但是,是的,下面的答案之间有零,你可以明白我的意思。我怎样才能解决这个问题?
#include <stdio.h>
int is_prime (int number)
{
int is_prime= 1, i;
if (number < 2)
{
is_prime = 0;
}
else
{
for(i = 2; (i * i) <= number; i++)
{
if ((number % i) == 0)
{
is_prime = 0;
break;
}
else
{
is_prime = 1;
}
}
}
return is_prime;
}
int main (void)
{
int lower_limit, upper_limit, i;
scanf("%d\n%d", &lower_limit, &upper_limit);
for(i = lower_limit; i <= upper_limit; i++)
{
if (is_prime (i))
{
printf("\n%d", i);
}
else
{
printf("\n%d", is_prime(i));
}
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
输出
0
11
0
13
0
0
0
17
0
19
0
Run Code Online (Sandbox Code Playgroud)
参考
11
13
17
19
Run Code Online (Sandbox Code Playgroud)
它在这个if街区:
if (is_prime (i))
{
printf("\n%d", i);
}
else
{
printf("\n%d", is_prime(i));
}
Run Code Online (Sandbox Code Playgroud)
这句话的意思是“如果数字是质数,则打印它,否则打印它是否是质数(此时您已经确定它不是质数)”。
只要摆脱else障碍即可。