每当我尝试编译以下代码时,我都可以输入我要求的初始值但是没有任何反应。此外,没有构建错误被拾取,所以我不知道为什么会发生这种情况。请提前帮助并表示感谢。
#include <stdio.h>
#include <stdbool.h>
int n;
int allDaPrimes[1000];
int counter = 0;
bool isPrime(int number);
int i;
int main()
{
printf("Please enter a numeric value now: ");
scanf("%d", &n);
for (i = 2; i <n; i++){
isPrime(i);
if(isPrime(i)) {
allDaPrimes[counter] = i;
counter++;
}
}
for(i= 0; i==counter; i++){
printf("%d", allDaPrimes[i]);
}
return 0;
}
bool isPrime(int number) {
for (i= 2; i <= number; i++){
if(number % i == 0 && number != i){
return false;
}
}
return true;
}
答案 0 :(得分:3)
这是代码中的逻辑错误,这意味着您的代码完全按照您的说法执行,但这并不是您脑子里的想法。
问题在于这句话
for(i= 0; i==counter; i++){
printf("%d", allDaPrimes[i]);
}
它从i = 0开始然后在i ==计数器时运行,这可能不是你想到的。你可能意味着:i<counter
答案 1 :(得分:1)
所有变量都是全局声明的,而不是在使用它们的函数中本地声明。这意味着您在不同的功能之间发生冲突。
以i
为例。在main
的循环中,您首先将其设置为2.但是isPrime()
将其更改为n+1
,因为这是完成循环之后的最后一个值。但是你调用了两次,因此i
最终成为n+2
,所以主循环只运行一次。如果你最终得到数组中的任何值,那么n+2
如果n+1
是素数,那就是//Create another PHP file / class that sends an email and control it from the php code.
// the message
$msg = "First line of text\nSecond line of text";
// send email
mail("someone@example.com","My subject",$msg);
。