首页 > 试题广场 >

编写…个程序,提示用户输入3个数集,每个数集包括5个doub

[问答题]

编写…个程序,提示用户输入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);
}

发表于 2018-05-05 21:48:36 回复(0)