C PRIMER PLUS(第六版编程练习)10.13编程练习

    技术2025-04-10  12

    /*编写一个程序,提示用户输入3组数,每组数包含5个double类型的数(假设用户都正确地响应,不会输入非数值数据)。 该程序应完成下列任务。   a.把用户输入的数据存储在3×5的数组中   b.计算每组(5个)数据的平均值   c.计算所有数据的平均值   d.找出这15个数据中的最大值   e.打印结果每个任务都要用单独的函数来完成(使用传统C处理数组的方式)。 完成任务b,要编写一个计算并返回一维数组平均值的函数,利用循环调用该函数3次。 对于处理其他任务的函数,应该把整个数组作为参数,完成任务c和d的函数应把结果返回主调函数。 */ #include<stdio.h> #define ROWS 3 #define COLS 5 void store(double ar[][COLS]); void average_row(double ar[][COLS]); void average_all(double ar[][COLS]); void max_all(double ar[][COLS]); int main(void) { double a[ROWS][COLS] = { 0 }; store(a); average_row(a); average_all(a); max_all(a); return 0; } void store(double ar[][COLS]) { int i, j; double n; printf("请输入15个数字:"); //scanf("%lf", &n); for (i = 0; i < ROWS; i++) { for (j = 0; j < COLS; j++) { scanf("%lf", &n); ar[i][j] = n; } } } void average_row(double ar[][COLS]) { int i, j; double sum; for (i = 0; i < ROWS; i++) { for (j = 0, sum = 0; j < COLS; j++) { sum += ar[i][j]; } printf("ROW %d average = %lf\n",i, sum / COLS); } } void average_all(double ar[][COLS]) { int i, j; double sum; for (i = 0,sum = 0; i < ROWS; i++) { for (j = 0; j < COLS; j++) { sum += ar[i][j]; } } printf("average of all is %lf\n", sum / (ROWS * COLS)); } void max_all(double ar[][COLS]) { int i, j; double max; for (max = 0, i = 0; i < ROWS; i++) { for (j = 0; j < COLS; j++) { if (max < ar[i][j]) max = ar[i][j]; } } printf("最大值为 %lf\n", max); }
    Processed: 0.012, SQL: 9