程序在C中打印素数之和

问题描述 投票:0回答:1

#include<stdio.h>
#include<math.h>
int main(){
    int n, count, sum;
    printf("Enter upper bound n \n");
    scanf("%d", &n);
    for(int a = 1; a <= n; a++){
        count =0;
        sum = 0;
    for(int i = 2; i <= sqrt(a); ++i){
        if(a%i == 0){
            count++;
           break;
        }
    }
    if(count== 0 && a!=1){
        sum = a + sum;
    }
   
}
 printf("%d", sum);
}

该程序是我尝试打印素数

请帮助我。

c primes
1个回答
0
投票

如注释中所述,您应该在第一次循环前初始化sum,例如

      int n, count, sum=0;

或者您可以在循环中初始化sum,如

      for(a=1,sum=0;a <= n; a++)       

并删除sum = 0;在第一个循环中,因为每次执行第一个循环时,总和都会变为0。您可以通过在代码中插入以下行来检查此问题

    printf("Before sum %d",sum);
    sum = 0;
    printf("After  Sum %d",sum);

请确保如果要在循环中初始化求和,请在循环的外部定义“ a”(如果未将和转到局部变量,并且它会隐藏外部和)。

© www.soinside.com 2019 - 2024. All rights reserved.