C语言:利用指针编写程序,定义一个3行3列的二维数组,并在程序中对其进行赋值,数组元素的类型不限,输出该二维数组以及各行的均值

题目来源:大工慕课 链接
作者:Caleb Sung

题目要求

利用指针编写程序,定义一个3行3列的二维数组,并在程序中对其进行赋值,数组元素的类型不限,输出该二维数组以及各行的均值,各行的均值可直接输出,也可存储于维数组中再输出
a.输出二维数组时要求使用指向数组的指针变量
b.计算各行的均值时要求使用指针数组

注意: 数组指针和指针数组的区别

这部分请参考我的文章《C语言:数组指针和指针数组的区别》:
https://blog.csdn.net/qq_41933331/article/details/80233856


弄明白了两者的区别,我们可以来做题了:

参考解答

#include<stdio.h>

void main(){
    int array[3][3], (*pArr)[3], *p[3], i, j, sum;
    srand(time(NULL));
    for(i=0; i<3; i++)
        for(j=0; j<3; j++)
            array[i][j] = rand()%100+0;
    pArr = array;
    for(i = 0; i < 3; i++)
        for(j = 0; j < 3; j++){
            printf("%d\t", pArr[i][j]);
            if(j == 2){
                printf("\n");
            }
        }
    for(i=0; i<3; i++)
        p[i] = array[i];
    for(i=0; i<3; i++){
        sum = 0;
        for(j=0; j<3; j++){
            sum += p[i][j];
        }
        printf("第%d行的和是%d\n", i+1, sum);
    }
}

运行效果

76      30      44
44      97      74
65      93      45
第1行的和是150
第2行的和是215
第3行的和是203

猜你喜欢

转载自blog.csdn.net/qq_41933331/article/details/80233853