【发布时间】:2015-02-25 06:00:33
【问题描述】:
所以我的任务如下:构造一个do-while()循环,它继续提示用户输入一个整数,并确定输入的整数的总和,直到遇到一个素数。质数不应包含在总和中。显示所有变量声明。
我已正确添加所有变量,但似乎无法让函数停止在素数上。为了尝试纠正这个问题,我制作了变量“primecheck”并将其设置为 2++,认为它将是大于 2 的每个整数(显然不可能,但可以希望)。任何帮助将不胜感激!
int main (void)
{
int sum = 0, num = 0, i = 0, primecheck = 0, two = 2;
primecheck = two++;
do
{
printf ("Enter an integer: ");
scanf ("%d", &num);
if (num % primecheck == 0 && primecheck != num)
{
sum += num;
}
} while (num % primecheck == 0 && primecheck != num);
i = sum;
printf("%s%d%s", "Sum = ", i, "\n");
}
【问题讨论】:
-
two = 2,two++。我知道“魔术”数字很糟糕,但真的吗?特别是因为现在two == 3. -
素数检查不是必须改变循环内的值吗?
-
我不明白素数检查在实现中应该如何工作。
-
@codor 实际上,是的,我认为该方法不适用于此方法(也许它会对不起我的知识非常有限),但它必须是一个函数和一个 do-while 循环。如果输入的数字是素数,基本上循环不应该运行