请问怎么是什么问题?

输入一直不结束,无法运行到输出

img


该问题是CCF201909-1 小明种苹果https://blog.csdn.net/tigerisland45/article/details/54755895(该链接可进

问题出在 scanf 函数的格式字符串中。你使用了 &d 和 %d,应该使用 %d 和 %d 来正确读取整数。

除了将scanf()里面的&d改为%d,还需要将数组a的列数改为1001,因为每行最多有1001个整数。

修改如下:


#include <stdio.h>



int main(void){
    
    // 因为M最大为1000,即每行最大有1001个输入,所以数组a的列数必须大于等于1001 
    int a[1000][1001]={0}; 
    int b[1000]={0};
    
    int N,M,i,j,T=0,k=0,p=0;
    
    scanf("%d %d",&N,&M);   // 这里&d改为%d 
    
    for(i=0;i<N;i++){
        for(j=0;j<M+1;j++){
            scanf("%d",&a[i][j]);
        }
    }
    
    for(i=0;i<N;i++){
        
        for(j=0;j<M+1;j++){
            T+=a[i][j];
        }
        for(j=1;j<M+1;j++){
            b[i]=b[i]+a[i][j];
        }
        if(p>b[i]){
            k=i+1;
            p=b[i];
        }
    }
    

    
    printf("%d %d %d",T,k,-p);
    
    return 0;
    
}

img

【相关推荐】




如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^