qq_32653757 2015-11-26 05:03 采纳率: 76.9%
浏览 1818
已采纳

新手, 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;
}

  • 写回答

2条回答 默认 最新

  • ysuwood 2015-11-27 08:32
    关注

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

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

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘