zoukankan      html  css  js  c++  java
  • 二维数组与函数

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

    #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),还有一种就是用变长数组的形式。

  • 相关阅读:
    计算三角形的周长和面积的类
    类的定义和继承
    简单类的定义和继承
    template <typename T>模板类定义
    字符串中取出数字字符串
    C++类定义 常量定义
    cogs1752[boi2007]mokia 摩基亚 (cdq分治)
    bzoj3262陌上花开 cdq分治入门题
    初入lambda表达式 (主要是c++11)
    空之境界
  • 原文地址:https://www.cnblogs.com/guangliang/p/4266614.html
Copyright © 2011-2022 走看看