• 二维数组与函数


    /*----------------计算各行、各列及所有元素的值--------------*/

    #include<stdio.h>
    #define ROWS 3
    #define COLS 4
    void sum_rows(int ar[][COLS],int rows);
    void sum_cols(int [][COLS],int);
    int sum2d(int (*ar)[COLS],int rows);
    int main()
    {
        int junk[ROWS][COLS]={
                {2,4,6,8},
                {3,5,7,9},
                {12,10,8,6}
        };
        sum_rows(junk,ROWS);
        sum_cols(junk,ROWS);
        printf(" Sum of all the elements = %d ",sum2d(junk,ROWS));
        return 0;
    }
    void sum_rows(int ar[][COLS],int rows)
    {
        int r;
        int c;
        int tot;
       
        for(r=0; r<rows; r++)
        {
            tot=0;
            for(c=0; c<COLS; c++)
                tot += ar[r][c];
            printf("row %d: sum = %d ",r,tot);
        }
    }
    void sum_cols(int ar[][COLS],int rows)
    {
        int r;
        int c;
        int tot;

        for(c=0; c<COLS; c++)
        {
            tot=0;
            for(r=0; r<rows; r++)
                tot += ar[r][c];
            printf("col %d: sum = %d ",c,tot);
        }
    }
    int sum2d(int ar[][COLS],int rows)
    {
        int r;
        int c;
        int tot=0;

        for(r=0; r<rows; r++)
            for(c=0; c<COLS; c++)
                tot += ar[r][c];
            return tot;

    }
    捕获

    总结:这是通过指针方式传值,int  ar[][COLS]是一个指针,表示一个由4个int值构成的数组的指针,即该指针指向一个包含4个int值的数组。还有一种方式是int (*ar)[COLS]。

    注:二维数组中传值的两种函数的参数形式为:void sum_rows(int ar[][COLS], int rows); int sum2d(int (*ar) [COLS], int rows),还有一种就是用变长数组的形式。

  • 相关阅读:
    Leetcode:169. 多数元素
    关系数据库
    数据库系统概述——简单总结
    Leetcode:1305. 两棵二叉搜索树中的所有元素
    Leetcode春季打卡第四天:994. 腐烂的橘子
    临界区和临界资源的关系
    线程2.线程的应用场景
    线程
    linux下的进程控制
    Go中的错误处理
  • 原文地址:https://www.cnblogs.com/guangliang/p/4266614.html
Copyright © 2020-2023  润新知