没有编译器错误,但我没有看到printf语句(循环后).循环前的printf都很好.我想不出来解决这个问题.
int prime(int n);
int main(void)
{
int num = 0;
bool prime;
int n;
int count;
int sum;
printf("Enter the limit:", n);
scanf("%d", &n);
printf("Primes up to %d\n", n);
// loop
for(int i =2; i <= n; i++)
{
prime = true;
for(int j =2; j < i; j++)
{
if(i%j == 0)
{
prime = false;
break;
}
}
if(prime)
{
num += i;
printf("%d ", i);
}
}
return num;
count++;
sum += count;
// sum of primes
printf("Number of primes: \n", sum);
}
Run Code Online (Sandbox Code Playgroud)
这是为什么?
因为你return num之前,这意味着它之前结束了你的功能.如果你将函数的结尾更改为:
count++;
sum += count;
// sum of primes
printf("Number of primes: \n", sum);
return num;
Run Code Online (Sandbox Code Playgroud)