小明种苹果

刚看这个题就不想做,感觉太简单了。。。其实也是很简单的,就是眼高手低。

小明种苹果

未成功的代码:

#include <cstdlib>
#include <cstdio>

int main(int argc, char *argv[])
{
    int  M,N;
    scanf("%d%d",&M,&N);
    int a[M][N+1];
    int status;
    int sum=0,maxminum=0,flag=0;
    for(int i=0;i<M;i++){
        status=0;
        for(int j=0;j<N+1;j++){
            scanf("%d",&a[i][j]);
            sum+=a[i][j];
            if(j!=0){
                status-=a[i][j];
            }
        }
        if(maxminum<status){
            maxminum=status;
            flag=i+1;
        }
    }
    printf("%d %d %d",sum,flag,maxminum);
    return 0;

}


对了百分之八十的。感觉不对劲,一直有问题,发现逻辑都是对的啊!想起来可能是数组越界。

https://blog.****.net/x_iya/article/details/8426581

成功代码:

#include <cstdlib>
#include <cstdio>

int a[1001][1001];
int main(int argc, char *argv[])
{
    int  M,N;
    scanf("%d%d",&M,&N);
    int status;
    int sum=0,maxminum=0,flag=0;
    for(int i=0;i<M;i++){
        status=0;
        for(int j=0;j<N+1;j++){
            scanf("%d",&a[i][j]);
            sum+=a[i][j];
            if(j!=0){
                status-=a[i][j];
            }
        }
        if(maxminum<status){
            maxminum=status;
            flag=i+1;
        }
    }
    printf("%d %d %d",sum,flag,maxminum);
    return 0;

}
把数组提到外面,果然没问题了。

小明种苹果