霸气的灯塔 2023-10-30 00:26 采纳率: 62.5%
浏览 4
已结题

循环,结果只输出一半需要输出的数值

写个题,编译没有问题,运行的时候就只会打印部分需要打印的数值,怎么改进啊,求指导

img

img

img

img

img

  • 写回答

4条回答 默认 最新

  • a5156520 2023-10-30 09:45
    关注

    修改如下:

    
    #include <stdio.h>
    #include <math.h>
    
    int main(void){
        
        int L,i,j=2,n=0,s=0;
        int flag=1;
        scanf("%d",&L);
        
        while(s<L){
            
            
            
            i=2;
            flag=1;
            while(i<=sqrt(j)){
                if(j%i==0){
                    flag=0;
                    break; // 如果j可以被i整除,则j不是素数,break退出循环 
                }else{
                    i=i+1;
                //    flag=1; // 这里素数标志不能置1,否则可能会导致判断素数出错 
                }
            }
            
            if(flag==1){  // 这里flag=1改为flag==1 
                
                s=s+j;
                if(s>L){  // 当累加当然质数后,如果和s大于口袋的负载量L,则需要从s中减去这个新增加的质数,并break退出循环 
                    s=s-j;
                    break;
                }else{    // 如果新增加质数后,和s没有超过口袋负载量L,则打印当前质数,并且质数数量+1        
                    printf("%d\n",j);
                    n=n+1;    
                }
                
            }
            j=j+1;
            
        }
        
        printf("%d",n);  // 因为计算的n,没有包括超出负载量的质数,所以这里直接打印n即可 
        
        return 0;
        
    } 
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(3条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 征集Python提取PDF文字属性的代码
  • ¥15 如何联系真正的开发者而非公司
  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?