学习笔记 求数组元素最大值最小值和平均值

任务描述

本关任务:用户输入测试集中所给的N 个正整数存入数组 a 中,输出 a 中的最大值,最小值及求出其平均值(保留两位小数)。 请用平台给的测试集输入,对你编写的代码进行测试,请在输入时,用第一个数代表你要输入几个整数,后面的值为你给的若干正整数。

测试输入:

4 91 51 2 32

预期输出(依次输出最大值、最小值和平均值,每两个数之间一个空格):

91 2 44.00

测试输入:

5 1 151 12 22 100

预期输出(依次输出最大值、最小值和平均值,每两个数之间一个空格):

151 1 57.20

代码实现

#include <stdio.h>
int  main(void)
{
	int N;//本关任务:用户输入测试集中所给的N
	scanf("%d", &N);
	int a[N - 1];
	int j, t, k;
	int sum = 0, max, min;
	double ave = 0;
	for (j = 0; j < N; j++)
	{
		scanf("%d ", &a[j]);
	}

	for (j = 0; j < N; j++)
	{
		k = a[j];
		sum = sum + k;
	}
	ave = (double)sum / N;
	for (j = 1; j < N; j++)//控制位数循环  
	{
		for (t = 0; t < N - j; t++)//控制每个位数要执行的次数,冒泡法从上而下次数逐级递减1          
		{
			if (a[t] > a[t + 1])//冒泡法排列大小。将数值从小到大填充进数组                
			{
				k = a[t];
				a[t] = a[t + 1];
				a[t + 1] = k;
			}
		}
	}
	min = a[0];
	for (j = 1; j < N; j++)//控制位数循环  
	{
		for (t = 0; t < N - j; t++)//控制每个位数要执行的次数,冒泡法从上而下次数逐级递减1          
		{
			if (a[t] < a[t + 1])//冒泡法排列大小。将数值从小到大填充进数组                
			{
				k = a[t];
				a[t] = a[t + 1];
				a[t + 1] = k;
			}
		}
	}
	max = a[0];
	printf("%d %d %0.2lf", max, min, ave);
	return  0;
}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值