看看~请问各位哪错了呢~

img

img


Mn和s是系统定义的外部整形变量编写程序,根据m的值求满足1+2加一直加到n大于等于m的最小n并加1+2+2+2+2+2的结果存放到s

应该是因为s没有初始化为0,然后s累加的值不对;

根据你的思路,把s初始化为0,因为是相加其他的值;然后循环里s+=1改为s+=i即可,因为是累加从1到n之间的所有值, 测试代码如下(如果是题目的格式,给main函数加上参数m,n,s,然后把main函数里对m,s,n的定义注释即可):

#include <stdio.h>

int main(void){
    
    int m=19,n,s=0;
    
    for(int i=1;i<=m;i++){
        s+=i;
        if(s>=m){
            n=i;
            break;
        }
    }
    
    printf("m=%d,n=%d,s=%d",m,n,s);
    
    return 0;
    
} 

img