数据处理器(编写一个程序,提示用户输入3组数,每组数包含5个double类型的数 (假设用户都正确地响应,不会输入非数值数据))

题目:编写一个程序,提示用户输入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 Input(double(*ar)[COLS], int n);					//处理输入数据任务函数
void average_1(const double(*ar)[COLS], int n);			//计算每组(5个)数据的平均值函数
double average_2(const double(*ar)[COLS], int n);		//计算所有数据的平均值函数
double Max(const double(*ar)[COLS], int n);				//找出这15个数据中的最大值函数
void show(double(*ar)[COLS], int n);					//打印赋值后数组的数据函数

int main(void)
{
	double ar[ROWS][COLS];
	double data;
	Input(ar, ROWS);									//处理输入数据任务函数
	show(ar, ROWS);										//打印赋值后数组的数据函数
	average_1(ar, ROWS);								//计算每组(5个)数据的平均值函数
	data= average_2(ar, ROWS);							//计算所有数据的平均值函数
	printf("所有数据的平均值: %.2lf\n", data);
	printf("15个数据中的最大值: %.2lf\n", Max(ar, 3));	//打印找出这15个数据中的最大值函数的返回值
	return 0;
}

void Input(double(*ar)[COLS], int n)					//处理输入数据任务函数
{
	for (int i = 0; i < n; i++) {
		printf("请输入第%d组数据(5个数):", i + 1);
		for (int j = 0; j < COLS; j++)
			scanf_s("%lf", &ar[i][j]);
	}
}

void average_1(const double(*ar)[COLS], int n)			//计算每组(5个)数据的平均值函数
{
	for (int i = 0; i < n; i++) {
		double sum = 0.0;
		for (int j = 0; j < COLS; j++)
			sum += ar[i][j];
		printf("第%d组数组的平均值:%.2f\n", i + 1, sum / 5);
	}
}

double average_2(const double(*ar)[COLS], int n)		//计算所有数据的平均值函数
{
	double sum = 0.0;
	for (int i = 0; i < n; i++)
		for (int j = 0; j < COLS; j++)
			sum += ar[i][j];
	return sum / 15;
}

double Max(const double(*ar)[5], int n)				//找出这15个数据中的最大值函数
{
	double max = ar[0][0];
	for(int i=0;i<n;i++)
		for (int j = 0; j < COLS; j++) {
			if (max < ar[i][j])
				max = ar[i][j];
		}
	return max;
}

void show(double(*ar)[5], int n)					//打印赋值后数组的数据函数
{
	printf("数组的数据:\n");
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < 5; j++)
			printf("%.2lf\t", ar[i][j]);
		printf("\n");
	}
}

假定输入的数据:
第一组:1.0 , 2.0, 3.0, 4.0, 5.0;
第二组:1.1, 2.2, 3.3, 4.4, 5.5;
第三组:10.0, 7.7, 6.6, 9.9, 8.8;
注意输入数据时,每个数字之间要加空格。

结果:

在这里插入图片描述

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值