盐冰915 2022-11-10 09:45 采纳率: 86.7%
浏览 30
已结题

我想实现三个功能,一个是计算每行总和,一个计算每列,一个计算总和

img

img

img


1.能否自由设置,我输入的行与列。这样在函数声明里的二维数组参数不对,那怎么样写才既能够满足我自由设置数组行列的目的,又不出现编译错误呢?网上查到的都是array[ ][ 4]这种,可这种不就事先固定了吗?
2.还有没有啥错误,有的编译错误我没咋看明白。
谢谢指教!

  • 写回答

3条回答 默认 最新

  • 关注

    你这个报错是变量没有声明,
    自由输入行和列的方式可以使用动态申请内存的方式,或者申请一个大数组也行(但是这种方式不推荐,如果题目没有给出最大范围,这种形式容易越界,且浪费空间)
    用动态内存分配的方式,代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    
    void row_sum(int** a, int n, int m);  
    void col_sum(int** a, int n, int m);  
    int sumall(int** a, int n, int m);
    int main(void)
    {
        int i, j;
        printf("请输入二维数组的两个数字:\n");
        int first, second;
        scanf("%d", &first);
        scanf("%d", &second);
        int** a;
        a = (int**)malloc(sizeof(int*) * first);
        for (i = 0; i < first; i++)
        {
            a[i] = (int*)malloc(sizeof(int) * second);
            for (j = 0; j < second; j++)
                scanf("%d", &a[i][j]);
        }
        row_sum(a, first, second);
        col_sum(a, first, second);
        printf("该数组的总和是%d", sumall(a, first, second));
        return 0;
    }
    
    void row_sum(int** a, int n, int m)
    {
        int i, j;
        for (i = 0; i < n; i++)
        {
            int total = 0;
            for (j = 0; j < m; j++)
                total += a[i][j];
            printf("row=%d   sum of row=%d\n", i, total); 
    
        }
    }
    void col_sum(int** a, int n, int m)
    {
        int i, j;
        for (j = 0; j < m; j++)
        {
            int total = 0;
            for (i = 0; i < n; i++) {
                total += a[i][j];
            }
            printf("col=%d   sum of col=%d\n", j, total);
        }
    }
    int sumall(int** a, int n, int m)
    {
        int i, j;
        int total = 0;
        for (i = 0; i < n; i++)
        {
            for (j = 0; j < m; j++)
                total += a[i][j];
        }
        return total;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 11月18日
  • 已采纳回答 11月10日
  • 创建了问题 11月10日

悬赏问题

  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效