编写…个程序,提示用户输入3个数集,每个数集包括5个double值。程序应当实现下列所有功能:
a.把输入信息存储到一个3x5的数组中
b.计算出每个数集(包含5个数值)的平均值
c.计算所有数值的平均数
d.找出这15个数中的最大值.
e.打印出结果
每个任务需要用一个单独的函数来实现(使用传统C处理数组的方法)。对于任务b,需要编写计算并返回一维数组平均值的函数,循环3次调用该函数来实现任务b。对于其他任务,函数应当把整个数组做为参数,并且完成任务c和d的函数应该向它的调用函数返回答案。
#include <stdio.h> #define COLS 5 void store(double p[][COLS], int row); void average_row(double p[][COLS], double *p_average0,double *p_average1,double *p_average2); double f_average_total(double p[][COLS], int row); double f_max(double p[][COLS], int row); void display(double p[][COLS], int rows, double average0, double average1, double average2, double average_total,double max); int main(void) { double array[3][COLS]; double average0, average1, average2, average_total, max; store(array,3); average_row(array, &average0, &average1, &average2); average_total = f_average_total(array,3); max = f_max(array,3); display(array, 3, average0, average1, average2, average_total, max); return 0; } void store(double p[][COLS], int row) { int i,j; printf("please input 3 arrays of 5 numbers:"); for (i=0; i<row; i++) for(j=0; j<COLS; j++) scanf("%lf",&p[i][j]); } void average_row(double p[][COLS], double *p_average0,double *p_average1,double *p_average2) { int j; for (j=0, *p_average0=0; j<COLS; j++) *p_average0 += p[0][j]; *p_average0 /= COLS; for (j=0, *p_average1=0; j<COLS; j++) *p_average1 += p[1][j]; *p_average1 /= COLS; for (j=0, *p_average2=0; j<COLS; j++) *p_average2 += p[2][j]; *p_average2 /= COLS; } double f_average_total(double p[][COLS], int row) { int i,j; double average=0; for (i=0; i<row; i++) for(j=0; j<COLS; j++) average += p[i][j]; average /= row * COLS; return average; } double f_max(double p[][COLS], int row) { int i,j; double max=p[0][0]; for (i=0; i<row; i++) for(j=0; j<COLS; j++) if (max < p[i][j]) max = p[i][j]; return max; } void display(double p[][COLS], int rows, double average0, double average1, double average2, double average_total,double max) { int i,j; printf("a.\narray = \n"); for(i=0;i<rows;i++) { for (j=0; j<COLS; j++) printf("%g\t",p[i][j]); printf("\n"); } printf("b.\n"); printf("average0 = %g\n",average0); printf("average1 = %g\n",average1); printf("average2 = %g\n",average2); printf("c.\n"); printf("total average = %g\n",average_total); printf("d.\n"); printf("max = %g\n",max); }
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
#include <stdio.h> #define COLS 5 void store(double p[][COLS], int row); void average_row(double p[][COLS], double *p_average0,double *p_average1,double *p_average2); double f_average_total(double p[][COLS], int row); double f_max(double p[][COLS], int row); void display(double p[][COLS], int rows, double average0, double average1, double average2, double average_total,double max); int main(void) { double array[3][COLS]; double average0, average1, average2, average_total, max; store(array,3); average_row(array, &average0, &average1, &average2); average_total = f_average_total(array,3); max = f_max(array,3); display(array, 3, average0, average1, average2, average_total, max); return 0; } void store(double p[][COLS], int row) { int i,j; printf("please input 3 arrays of 5 numbers:"); for (i=0; i<row; i++) for(j=0; j<COLS; j++) scanf("%lf",&p[i][j]); } void average_row(double p[][COLS], double *p_average0,double *p_average1,double *p_average2) { int j; for (j=0, *p_average0=0; j<COLS; j++) *p_average0 += p[0][j]; *p_average0 /= COLS; for (j=0, *p_average1=0; j<COLS; j++) *p_average1 += p[1][j]; *p_average1 /= COLS; for (j=0, *p_average2=0; j<COLS; j++) *p_average2 += p[2][j]; *p_average2 /= COLS; } double f_average_total(double p[][COLS], int row) { int i,j; double average=0; for (i=0; i<row; i++) for(j=0; j<COLS; j++) average += p[i][j]; average /= row * COLS; return average; } double f_max(double p[][COLS], int row) { int i,j; double max=p[0][0]; for (i=0; i<row; i++) for(j=0; j<COLS; j++) if (max < p[i][j]) max = p[i][j]; return max; } void display(double p[][COLS], int rows, double average0, double average1, double average2, double average_total,double max) { int i,j; printf("a.\narray = \n"); for(i=0;i<rows;i++) { for (j=0; j<COLS; j++) printf("%g\t",p[i][j]); printf("\n"); } printf("b.\n"); printf("average0 = %g\n",average0); printf("average1 = %g\n",average1); printf("average2 = %g\n",average2); printf("c.\n"); printf("total average = %g\n",average_total); printf("d.\n"); printf("max = %g\n",max); }