编写程序。定义一个二维数组a[3][3],每个数组元素的值由a[i][j]=※2+j※3得到,要求

编写程序。定义一个二维数组a[3][3],每个数组元素的值由a[i][j]=※2+j※3得到,要求按矩阵形式输出。通过调用函数,输出a[3][3]数组元素的总分和平均分

编写程序。定义一个二维数组a[3][3],每个数组元素的值由a[i][j]=※2+j※3得到,要求按矩阵形式输出。通过调用函数,输出a[3][3]数组元素的总分和平均分

编程思路分析:

题目的意图是用循环语句对数组的元素赋值,循环语句输出数组元素,函数方式计算出数组元素的总分和平均分

解答办法:

使用双重for循环对数组元素进行赋值运算和矩阵形式输出

核心代码:

//对数组元素赋值
for(int i = 0; i < 3; i++){
    for(int j = 0; j < 3; j++){
        a[i][j] = i * 2 + j * 3;
    }
}

//输出数组元素
for(int i = 0; i < 3; i++){
    for(int j = 0; j < 3; j++){
        printf("%d\t", a[i][j]);
    }
    printf("\n");
}

//计算数组元素的和值
int sum = 0;
for(int i = 0; i < 3; i++){
    for(int j = 0; j < 3; j++){
        sum += a[i][j];
    }
}
return sum;

//平均值
int avage = 0;
avage = sum / (3*3);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-08

设计思想:

    定义二维数组,并按照题目中的要求初始化。建议使用宏来定义二维数组的大小,这样方便修改二维数组大小,减少维护工数。

    分别定义并初始化变量sum和average,用于求和,求平均数

    使用双重循环,将二维数组以矩阵形式输出

    使用双重循环,求二维数组的和

    用3中求出的和,计算平均数

代码:

#include<stdio.h>
#define M 3
#define N 3

int main() {
        int sum=0;
        double average=0.0;
        int a[M][N];//定义二维数组
        for (int i=0; i < M; i++) {//初始化二维数组
                for (int j=0; j < N; j++) {
                        a[i][j] = i * 2 + j * 3;
                }
        }
        //使用双重循环,求二维数组的和
        for (int i=0; i < M; i++) {
                for (int j=0; j < N; j++) {
                       sum += a[i][j];
                        printf("%d ", a[i][j]);
                }
                printf("\n");
        }
        average = ((double)sum)/(M*N);//计算平均数

        printf("sum = %d, average=%lf\n",sum, average);
        return 0;
}

运行结果:

0 3 6
2 5 8
4 7 10
sum = 45, average=5.000000

备注提醒:

题目中说“每个数组元素的值由a[i][j]=※2+j※3得到”,应该是提问者笔误。此处,建议理解为“每个数组元素的值由a[i][j]=i*2+j*3得到”。

第2个回答  推荐于2018-02-28
#include <stdio.h>

//The sum of the array a and the average
void outPut(int (*p)[3])
{
    int i, j, sum = 0;
    float average;
    //Sum of the array a
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            sum += p[i][j];
        }
    }
    
    //Average of the array a
    average = sum / 9.0;
    
    //Output the result
    printf("The Sum of the Array a equals : %d\nThe Average of the Array a equals : %f\n", sum, average);
}

//Use the Ver. to output the array a
void outputVer(int (*p)[3])
{
    int i, j;
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            printf("%3d", p[i][j]);
        }
        printf("\n");
    }
}

//Main Function
int main(int argc, char *argv[])
{
    //Definition of the variable
    int i, j, a[3][3] = {};
    
    //Initialize the array use the formula a[i][j] = 2 * i + 3 * j;
    for (i = 0; i < 3; i++)
    {
        for (j = 0; j < 3; j++)
        {
            a[i][j] = 2 * i + 3 * j;
        }
    }
    
    //Output the array in Vertical
    outputVer(a);
    
    //Output the results using the function
    outPut(a);
    
    //The end of the Program
    return 0;    
}

本回答被网友采纳
相似回答