没有编译器错误,但我没有看到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);
}
为什么?
答案 0 :(得分:5)
因为你之前有return num
,这意味着它之前结束了你的功能。如果您将函数的结尾更改为:
count++;
sum += count;
// sum of primes
printf("Number of primes: \n", sum);
return num;