monzaid 2019-12-04 09:38
浏览 155

C语言寻找三维数组正切面最大和的值,上交Wrong Answer, 有题目和代码, 望大神指点

切面

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>
#include <stdlib.h>
int main (){
    //长a,宽b,高c
    int a, b, c;
    scanf("%d %d %d", &a, &b, &c);
    //定义动态内存
    int ***p = (int ***) malloc(sizeof(int **) * a);
    for (int i = 0; i < a; i++){
        p[i] = (int **) malloc(sizeof(int *) * b);
        for (int j = 0; j < b; j++)
            p[i][j] = (int *) malloc(sizeof(int) * c);
    }
    //读入数据
    for (int i = 0; i < a; i++)
        for (int j = 0; j < b; j++)
            for (int k = 0; k < c; k++)
                scanf("%d", &p[i][j][k]);
    int max;
    //找最大切面
    for (int i = 0; i < a; i++){
        int sum = 0;
        for (int j = 0; j < b; j++)
            for (int k = 0; k < c; k++)
                sum += p[i][j][k];
        if (i == 0)//当第一个切面时最大切面为第一个切面
            max = sum;
        else if (sum > max)
            max = sum;
    }
    for (int j = 0; j < b; j++){
        int sum = 0;
        for (int i = 0; i < a; i++)
            for (int k = 0; k < c; k++)
                sum += p[i][j][k];
        if (sum > max)
            max = sum;
    }
    for (int k = 0; k < c; k++){
        int sum = 0;
        for (int i = 0; i < a; i++)
            for (int j = 0; j < b; j++)
                sum += p[i][j][k];
        if (sum > max)
            max = sum;
    }
    printf("%d", max);
    //释放p
        for (int i = 0; i < a; i++){
            for (int j = 0; j < b; j++)
                free(p[i][j]);
            free(p[i]);
            }
            free(p);
    return 0;
}

测试用例

图片说明

但是上交的是返回

图片说明

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 如何在scanpy上做差异基因和通路富集?
    • ¥20 关于#硬件工程#的问题,请各位专家解答!
    • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
    • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
    • ¥30 截图中的mathematics程序转换成matlab
    • ¥15 动力学代码报错,维度不匹配
    • ¥15 Power query添加列问题
    • ¥50 Kubernetes&Fission&Eleasticsearch
    • ¥15 報錯:Person is not mapped,如何解決?
    • ¥15 c++头文件不能识别CDialog