A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

#include <stdio.h>

void chuShiHua(int hangShu,int lieShu,int arr[hangShu][lieShu]);
void bianLiShuZu(int hangShu,int lieShu,int arr[hangShu][lieShu]);
int max(int hangShu,int lieShu,int arr[hangShu][lieShu]);
int avg(int hangShu,int lieShu,int arr[hangShu][lieShu]);
int maxHang(int hangShu,int lieShu,int arr[hangShu][lieShu]);
double maxHangavg(int hangShu,int lieShu,int arr[hangShu][lieShu]);


int main(int argc, const char * argv[]) {

    //让用户输入行数和列数
    printf("请输入行数和列数空格分开");
    int hangShu = 0 ,lieShu = 0;
    scanf("%d%d",&hangShu,&lieShu);

    //定义一个二维数组
    int arr[hangShu][lieShu];

    //初始化
    chuShiHua(hangShu, lieShu, arr);

    //遍历数组
//    bianLiShuZu(hangShu, lieShu, arr);

    //求最大值
    printf("数组中最大值为%d\n",max(hangShu, lieShu, arr));
    //求平均值

    printf("二维数组的平均值为%d\n",avg(hangShu, lieShu, arr));
    //求行数总和的最大值

    printf("二维数组中一行总和最大为%d\n",maxHang(hangShu,lieShu,arr));
    //行数总和最大值的平均值


    printf("二维数组中一行总和最大的平均值为%.2lf\n",maxHangavg(hangShu,lieShu,arr));


    return 0;
}






/**
*  求二维数组中 行最大值的平均值
*
*  @param hangShu 行数
*  @param lieShu  列数
*  @param arr    二维数组
*
*  @return 平均值
*/
double maxHangavg(int hangShu,int lieShu,int arr[hangShu][lieShu]){

    return maxHang(hangShu, lieShu, arr)/lieShu*1.0;
}
/**
*  求二维数组中  行最大值   的那一行的最大值
*
*  @param hangShu 行数
*  @param lieShu  列数
*  @param arr     二维数组
*
*  @return 行数最大值
*/
int maxHang(int hangShu,int lieShu,int arr[hangShu][lieShu]){

    int max = INT32_MIN;
    for (int i = 0 ; i < hangShu; i++) {
        int a = 0;
        for (int j = 0 ; j < lieShu; j++) {

            a+=arr[i][j];
        }
        if (a > max) {
            max = a;
        }
    }

    return max;
}

/**
*  数组的平均值
*
*  @param hangShu 行数
*  @param lieShu   列数
*  @param arr     二维数组
*
*  @return 平均值
*/
int avg(int hangShu,int lieShu,int arr[hangShu][lieShu]){
    int sum = 0;
    for (int i = 0 ; i < hangShu; i++) {
        for (int j = 0 ; j < lieShu; j++) {
            sum+=arr[i][j];
        }
    }

    return sum/(hangShu*lieShu);
}


/**
*  找出数组中的最大值
*
*  @param hangShu 行数
*  @param lieShu  列数
*  @param arr     二维数组
*
*  @return 最大值
*/
int max(int hangShu,int lieShu,int arr[hangShu][lieShu]){
    int a = INT32_MIN;
    for (int i = 0 ; i < hangShu; i++) {
        for (int j = 0 ; j < lieShu; j++) {
            if (arr[i][j] > a) {
                a = arr[i][j];
            }
        }
    }

    return a;
}


/**
*  让用户对数组进行初始化
*
*  @param hangShu 行数
*  @param lieShu  列数
*  @param arr     二维数组
*/

void chuShiHua(int hangShu,int lieShu,int arr[hangShu][lieShu]){


    for (int i = 0 ; i < hangShu; i++) {
        printf("请输入第%d行的数据一共%d个,用空格分开",i+1,lieShu);

        for (int j = 0 ; j < lieShu ; j++) {
            scanf("%d",&arr[i][j]);
        }
    }
}
/**
*  遍历数组
*
*  @param hangShu 行
*  @param lieShu  列数
*  @param arr     二维数组
*/
void bianLiShuZu(int hangShu,int lieShu,int arr[hangShu][lieShu]){
        for (int i = 0 ; i < hangShu; i++) {

            for (int j = 0 ; j < lieShu ; j++) {
                printf("%d",arr[i][j]);
            }
            printf("\n");
        }
}

2 个回复

倒序浏览
0.0 0.0 0.0  0.0  0.0  0.0
回复 使用道具 举报
哎哟 点个赞
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马