首页 > 编程知识 正文

中位年龄如何计算,数位与计算单位的区别

时间:2023-05-04 23:04:00 阅读:248718 作者:4430

输入数据

第一行为一个整数 t (1≤t≤100)t (1≤t≤100),表示数据的组数。接下来对于每组数据

第一行为一个整数 n (1≤n≤500)n (1≤n≤500),表示参加考试的人数。

第二行有 nn 个整数 a1,a2,…an (0≤ai≤100)a1,a2,…an (0≤ai≤100),表示每个人的成绩。

输出数据

对于每组数据,输出一行:

第一行为一个实数,表示这门科目的成绩得分中位数(保留一位小数)。

#include<iostream>#include<string>#include<vector>#include<algorithm>using namespace std;const int MAX = 100;int main() {ios::sync_with_stdio(false); cin.tie(0);int num,n,newNum; vector<int> a[MAX];cin >> num;//输入数据组数for (int i = 0; i < num; i++){//第i组数据cin >> n;//输入分数的个数for (int j = 0; j < n; j++) {cin >> newNum;a[i].push_back(newNum);//第一次写的时候这里用的a[j].push_back(),怕是蠢到家了。if (j + 1 == n)//循环要搞清楚i和j分别代表的意义是什么sort(a[i].begin(), a[i].end());//排序}if (n % 2 == 1) //如果是奇数printf("%.1fn", (float)a[i].at(n / 2));/*cout << (float)a[i].at(n / 2)<< endl;*/else {//printf函数中不涉及自动转换printf("%.1fn", (float)(a[i].at(n / 2 - 1) + a[i].at(n / 2)) / 2);//后面数据要先转化为float,不然前后格式不对/*cout << (float)(a[i].at(n / 2 - 1) + a[i].at(n / 2)) / 2 << endl;*///用cout输出无法保留一位小数}}return 0;}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。