湖大CG满分教程:作业训练一编程题11. 平均方差

这篇具有很好参考价值的文章主要介绍了湖大CG满分教程:作业训练一编程题11. 平均方差。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【问题描述】

一个数列的平均方差是指数列中的每个元素与数列的平均值的差的平方和的平均值,比如下面数列:

1 2 3 4 5 6 7

其平均值为4,每个元素与平均值的差的平方为

9 4 1 0 1 4 9

其平方和为28,所以该数列的平均方差为4。

对给定的数列,求出其平均方差。

【输入形式】

有多组测试数据。

每组测试数据第一行是一个正整数N,表示数列中元素个数,接下来一行N个用空格分隔开的正整数,表示数列的N个元素,每个元素的值都是不大于500的正整数。

N=0表示输入结束,并且不需要处理。

40%的数列元素个数N 1 ≤ N≤ 10;

30%的数列元素个数N 1 ≤ N≤ 100;

20%的数列元素个数N 1 ≤ N≤ 1000;

10%的数列元素个数N 1 ≤ N≤ 10000;

【输出形式】

对于每组测试数据,输出一个整数:平均方差。平均方差不是整数的,输出其向下取整的整数。比如平均方差是4.5,输出4。

【样例输入】

7
1 2 3 4 5 6 7
4
1 2 3 4
0

【样例输出】文章来源地址https://www.toymoban.com/news/detail-492948.html

4
1
在C++中,可以使用类型转换或者数学函数来实现向下取整操作。

使用类型转换:
可以将 float 类型的变量强制转换为 int 类型,强制转换会丢弃小数部分,实现向下取整。

float num = 3.7;
int result = static_cast<int>(num);  // 向下取整,结果为3
使用数学函数:
使用 floor() 函数可以向下取整,返回小于或等于给定浮点数的最大整数。

#include <cmath>
float num = 3.7;
int result = std::floor(num);  // 向下取整,结果为3
请注意,这些方法都会将浮点数向下取整为最接近但不大于原始值的整数。如果需要将浮点数向下取整为最接近且小于原始值的整数,可以使用 std::floor() 函数配合减一操作实现:

#include <cmath>
float num = 3.7;
int result = std::floor(num - 1);  // 向下取整,结果为2
需要包含 <cmath> 头文件来使用 std::floor() 函数。
#include<bits/stdc++.h>
#include<math.h>
using namespace std;
int main()
{
	while(1)
	{
		int n;
		cin>>n;
		if(n==0)
		{
			break;
		}
		float a[n];
		float average=0;
		for(int i=0;i<n;i++)
		{
			cin>>a[i];
			average+=a[i];
		}
		average/=n;
		float ans=0;
		for(int i=0;i<n;i++)
		{
			ans+=(a[i]-average)*(a[i]-average);
		}
		ans/=n;
		ans=floor(ans);
		cout<<ans<<endl;
	}
	return 0;
} 

到了这里,关于湖大CG满分教程:作业训练一编程题11. 平均方差的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包