14 2维数组练习

2021-01-04 18:28

阅读:374

标签:输入   The   ret   第一个   数组   程序   return   ber   sum   

/*
该程序练习二维数组
用户输入3组数,每组5个, (3行5列数组)
计算每组平均值
计算每行平均值
计算所有数的平均值
找出所有数的最大值
 可以使用如下数组测试

 a[3][5] = {{11,12,13,14,15},
                      {21,22,23,24,15},
                      {31,32,33,34,35}};
想象,a有三个一维数组组成(竖着排的11,21,31),每个数组有5个数组组成。
*a 是一个地址,即 &a[0] 。a是指针的指针,指向第一行(也指向行中的第一个),a+1向下 移动一行
*(a+1) 代表第二行,即a [1] ,即 21,22,23,24,15
*((*a+1)+2) ==第二列第3个即23
感觉二维数组的指针太难了。。。
*/

#include #define ROW 3
#define COL 5

//声明函数
void prs(void);
void av_row(double ar[][COL], int row);    //计算每行平均值
void av_col(double ar[][COL], int row);   //计算每列平均值
void av_all(double ar[][COL], int row);
void find_big(double ar[][COL], int row);

main() {
    double a[ROW][COL];
    int r, c;


    ////-------------------输入部分: ----------------------------------
    // 用户输入3组数,每组5个
    printf("please input 15 numbers:\n");
    for (r = 0; r )
        for (c = 0; c )
            scanf_s("%lf", &a[r][c]);



    //// 测试数组:
    //double a[ROW][COL] = {
    //   {11,12,13,14,15},
    //   {21,22,23,24,15},
    //   {31,32,33,34,35}
    //};
        
    //// 测试输入
    //   { 11.1 1.2 1.23 -1.4 14.5 92.1 111.1 22.3 233.4 0.01 13.1 33.2 3.3 33.4 35.9  }



    //显示数组

    printf("You array is : \n\n");
    for (r = 0; r ) {
        for (c = 0; c )
            printf("%.2lf ", a[r][c]);
        printf("\n");
    }
    prs();


    //调用计算
    av_row(a, ROW);     //计算每行平均值
    av_col(a, ROW);     //计算每列平均值
    av_all(a, ROW);//计算总平均值
    find_big(a, ROW);  //找最大数

}


//      ----------------------                下面计算        ----------------------    ////

//计算每组平均值
//void avcol(double  (*p)[COL],int row)
void av_row(double ar[][COL], int row)
{
    int r, c;
    double av;
    double sum = 0.0;

    for (r = 0; r ) {
        sum = 0.0;           //不能少,每轮循环重置;
        for (c = 0; c )
        {
            sum += ar[r][c];
            av = sum / COL;
        }
        printf("Row%d   sum=%.0f,   av=   %.2f\n", r + 1, sum, av);
    }
    prs();  
}
//计算每列平均值
void av_col(double ar[][COL], int row) {
    double sum = 0.0;
    double av;
    int c, r;

    for (c = 0; c ) {
        double sum = 0.0;
        for (r = 0; r )
        {
            sum += ar[r][c];
            av = sum / row;
        }
        printf("col%d   sum=%.0f,   av=   %.2f\n", c + 1, sum, av);
    }
    prs();  
};




//计算所有数的平均值
void av_all(double ar[][COL], int row) {
    double sum = 0.0;
    double av = 0;
    int c, r;

    for (c = 0; c ) 
        for (r = 0; r )
            sum += ar[r][c];
 
    av = sum / ROW / COL;
    printf(" ALL sum=%.0f,   av=   %.2f\n", sum, av);
    prs();  
}


//找出所有数的最大值

void find_big(double ar[][COL], int row) {


    double big;
    int c, r;

    for (c = 0; c ) {
        double sum = 0.0;
        for (r = 0; r )
        {
            big = ar[0][0];
            if (big  ar[r][c])
                big = ar[r][c];
        }
    }
    printf("The biggest num is %.2f\n\n",big);
    return 0;
}

void prs(void) {
    printf("\n*******************************\n");

}

 

14 2维数组练习

标签:输入   The   ret   第一个   数组   程序   return   ber   sum   

原文地址:https://www.cnblogs.com/abel2020/p/12983702.html


评论


亲,登录后才可以留言!