您好,欢迎来到车服汽车网。
搜索
您的当前位置:首页输入一个二维整型数组a[4][3],用三种方法输出二维数组中所有元素的平均值、最大元素、最小元素

输入一个二维整型数组a[4][3],用三种方法输出二维数组中所有元素的平均值、最大元素、最小元素

来源:车服汽车网

有网友碰到这样的问题“输入一个二维整型数组a[4][3],用三种方法输出二维数组中所有元素的平均值、最大元素、最小元素”。小编为您整理了以下解决方案,希望对您有帮助:

解决方案1:

1、打开matlab,在命令行窗口中输入a=[12 24 35;26 78 56],创建一个2行3列的矩阵。

2、在命令行窗口中输入mean(a(:)),求a矩阵所有元素的平均值。

3、按回车键之后,可以看到a矩阵所有元素的平均值是 38.5000。

4、如果想求矩阵每一列的平均值,输入mean(a,1)。

5、如果想求矩阵每一行的平均值,输入mean(a,2)。

注意事项:

C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。

解决方案2:

是用三个自定义函数吗?是的话我再写,不然太费时间

解决方案3:

如下:【注】VC6已被卸载,系统中只有VC 2010,但下面的代码用的是标准的C语句,因此在VC6是没有问题的,事实上任何一个C编译器都可以通过(已在VC2010、MinGW下测试通过)。

#include <cstdio>

double funAverage(int *p, int n);
int funMax(int p[][3], int n);
int funMin(int (*p)[3], int n);

int main(int argc, char const *argv[])
{
    int a[4][3], num;
    size_t i, j, ROWS, COLS, totalnum;

    ROWS = sizeof(a)/sizeof(a[0]);
    COLS = sizeof(a[0])/sizeof(a[0][0]);
    totalnum = ROWS * COLS;

    printf("Input %dx%d integer matrix:\n", ROWS, COLS);
    i = 0;
    while (i < ROWS) {        
        j = 0;
        while (j < COLS) {
            if (scanf("%d", &num) == 1) {
                a[i][j] = num;
                j++;
            }
        }    
        i ++;    
    }

    printf("\n");
    printf("Max: %d\n", funMax(a,4));
    printf("Min: %d\n", funMin(a,4));
    printf("Average: %g\n", funAverage(a[0],12));
    return 0;
}

double funAverage(int *p, int n) 
{
    int i;
    double sum = 0.0;
    for (i = 0; i < n; ++i)
        sum += p[i];

    return (double)(sum/n);
}
int funMax(int p[][3], int n)
{
    int i,j, cols, amax = p[0][0];
    cols = sizeof(p[0])/sizeof(p[0][0]);

    for (i = 0; i < n; ++i) 
        for (j = 0; j < cols; ++j)
            if (p[i][j] > amax) amax = p[i][j];

    return amax;    
}

运行如下:

Input 4x3 integer matrix:
1 2 3
4 5 6
7 8 9
10 11 12

Max: 12
Min: 1
Average: 6.5

Copyright © 2019- carsofchina.com 版权所有

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务