新手, C语言寻找三维数组正切面最大和的值,测试对但WA, 有题目和代码, 望大神指点

Description
给出一个长方体,求该长方体每个正切面上的元素之和的最大值。

正切面的意思就是与长方体某一面平行的切面。如果把长方体看作是一个三维数组,那么每个切面就是一个二维数组。

Input
第一行是3个正整数a、b、c,分别表示长方体的长、宽、高。0 < a, b, c ≤ 60

接下来是 c 块数据,每一块数据有a行、每行b个整数。

Output
输出切面元素和的最大值。

Sample Input
3 3 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3
1 2 3

Sample Output
27

代码:

 #include<stdio.h>
int main(void){
static long long z[62][62][62];
long long a, b, c, i, j, k , sum, max;
scanf("%lld%lld%lld", &a, &b, &c);

for(i=1; i<=b; i++)
for(j=1; j<=a; j++)
for(k=1; k<=c; k++)
scanf("%lld", &z[i][j][k]);

sum=0;
for(i=1; i<=b; i++)
for(j=1; j<=a; j++)
sum=sum+z[i][j][1];
max=sum;

for(k=1; k<=c; k++){
sum=0;
for(i=1; i<=b; i++)
for(j=1; j<=a; j++)
sum=sum+z[i][j][k];
if(sum>max) max=sum;
}

for(i=1; i<=a; i++){
sum=0;
for(j=1; j<=b; j++)
for(k=1; k<=c; k++)
sum=sum+z[i][j][k];
if(sum>max) max=sum;
}

for(j=1; j<=b; j++){
sum=0;
for(i=1; i<=a; i++)
for(k=1; k<=c; k++)
sum=sum+z[i][j][k];
if(sum>max) max=sum;
}

printf("%lld", max);

return 0;
}

1、把long long 改为int,输入输出格式改为d%
2、去掉static
3、max有了初值,for(k=2; k<=c; k++),改为k=2开始
试试看

你是想问什么?感觉代码没问题啊