无题12 2022-10-29 16:47 采纳率: 100%
浏览 14
已结题

质数求和,为什么加不上2,哭死(关键词-input)

#include<stdio.h>
int main(void){
//User input an integer
//program only add prime number together
//output the sum of all prime number user inputted
//if no prime, output 0
//input -1 for exit

    int sum, enterNumber, number;
    number = 2;
    sum = 0;
    printf("Enter digit dayu 0(enter -1 end the program): ");
    scanf("%d", &enterNumber);
    if(enterNumber == -1){
            return 0;
    }
    while(enterNumber != -1){
            scanf("%d", &enterNumber);
            if(enterNumber == -1){
                    break;
            }
            if(enterNumber < number){
                    printf("The sum is 0\n");
            } else {
                    while(enterNumber >= number){
                          if(enterNumber % number == 0){
                          break;
                          } else {
                               number = number + 1;
                          }
                    }
                    if(number == enterNumber){
                            sum = sum + enterNumber;
                    } else {
                            printf("The sum is 0\n");
                    }
           }
    }
    printf("The sum is %d\n", sum);
    return 0;

}

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-10-29 18:07
    关注

    修改如下,供参考:

    #include<stdio.h>
    int main(void){
    //User input an integer
    //program only add prime number together
    //output the sum of all prime number user inputted
    //if no prime, output 0
    //input -1 for exit
    
        int sum, enterNumber, number ,k;
                     //number = 2;
                     //sum = 0;
        printf("Enter digit dayu 0(enter -1 end the program): ");
                     //scanf("%d", &enterNumber);
                     //if(enterNumber == -1){
                     //        return 0;
                     //}
        while (1){   //(enterNumber != -1)
            scanf("%d", &enterNumber);
            if(enterNumber == -1){
                break;
            }
            for (number = 2 ,sum = 0;enterNumber >= number; number++) //if(enterNumber < number)
            {
                                      //printf("The sum is 0\n");
                                      //}
                k = 2;                //else {
                while(number > k){
                     if(number % k == 0){
                         break;
                     }
                     k++;            //else {
                                     //number = number + 1;
                                     //}
                }
                if(number == k){
                    sum = sum + number;
                }
                                    //else {
                                    //    printf("The sum is 0\n");
                                     //}
            }
            printf("The sum is %d\n", sum);
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月7日
  • 已采纳回答 10月30日
  • 修改了问题 10月29日
  • 创建了问题 10月29日

悬赏问题

  • ¥15 微带串馈天线阵列每个阵元宽度计算
  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退