2401_87743415 2025-01-27 00:52 采纳率: 66.7%
浏览 21
已结题

C语言,请问问题出在哪里?

img

img


Luogu有6个测试点,只有最后一个测试点正确了,还麻烦大家帮我看一下哪里有问题,麻烦了谢谢

  • 写回答

5条回答 默认 最新

  • a5156520 2025-01-27 10:30
    关注

    将第10行for循环的循环条件修改下,然后再将打印i的值那里修改下即可。

    修改如下:

    #include <stdio.h>
    
    int main(void){
        
        int k=0;
        
        scanf("%d",&k);
        
        int i=1;
        double count=0.0;
        
        // 下面的for循环的循环条件改为count<=k,因为题目要计算Sn>k的最小的n
        // 此循环当count>k时,会停止循环,最后一次循环时,i的的值为所求 
        for(i=1;count<=k;i++){
            
            count=count+1.0/i;
            //printf("i=%d,count=%f\n",i,count);
    //        
    //        if(i%20==0){
    //            getchar();
    //        }
        } 
    //    printf("最后,i=%d, count=%f\n",i,count);
        
        printf("%d",--i);  // 减去最后一次循环i自增的1 
        
        return 0;
            
    } 
    
    

    img

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

报告相同问题?

问题事件

  • 系统已结题 2月4日
  • 已采纳回答 1月27日
  • 创建了问题 1月27日