程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 二維數組-新手, C語言尋找三維數組正切面最大和的值,測試對但WA, 有題目和代碼, 望大神指點

二維數組-新手, C語言尋找三維數組正切面最大和的值,測試對但WA, 有題目和代碼, 望大神指點

編輯:編程綜合問答
新手, 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開始
試試看

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved