题解 | 牛牛的数学作业

牛牛的数学作业

https://www.nowcoder.com/practice/6f5d239c34a7429cb325a3d836abc342


#include <stdio.h>
#include <math.h>

int main()
{
	int T = 0;
	scanf("%d", &T);
	for (int i = 0; i < T; i++)
	{
		int num = 0;
		long long range = 0;//大整形
		double Var = 0;  //double更精准,且后有小数
		int sum = 0;
		scanf("%d", &num);
		long long Max = -1e18;
		long long Min = 1e18;    //要注意两个不要写反了

		long long arr[10000] = { 0 };
		for (int i = 0; i < num; i++)
		{
			int n = 0;
			scanf("%d", &n);
			arr[i] = n;
			sum += n;
			if (n > Max)
			{
				Max = n;
			}
			if (n < Min)
			{
				Min = n;
			}
		}

		range = Max - Min;
		double average = (double)sum / num;  //因为都要加入方差的计算,且有前一个隐性提升
		for (int i = 0; i < num; i++)
		{
			Var += pow((arr[i] - average),2)/num;
		}
		printf("%lld %.3f\n", range, Var);

	}
	return 0;
}

全部评论

相关推荐

牛至超人:哈工大已经很棒了,不需要加括号了,然后咋没有实习经历呢?火速趁寒假整一段实习,导师不让就狠狠肘击
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务