PTA:分段统计
2023-12-18 23:33:32
题干
给定各个分段统计的区间端点和待统计的一组数据,请统计每区间中数据的个数及其占比百分数。
输入格式:
第一行为一个正整数n(0<n<=100),表示分段区间的端点数,n个端点构成n-1个区间。其后的n个整数按升序给出,分别表示区间的端点值,相邻的两个端点构成一个“区间”,每个区间均为左闭右开区间。
接下来的一行中有一个正整数k(0<k<=1000),表示待统计数据的个数。
其后一行有k个正整数,表示待统计的数据。
数据之间空格分隔。
输出格式:
输出每个区间的数据个数和占比百分数。
请注意:
(1)最后一个区间也是左闭右开区间。
(2)每行输出中的第1个逗号为半角字符,第2个逗号为全角字符,左右括号为半角字符。
输入样例:
6
0 60 70 80 90 100
20
0 59 60 61 65 69 70 70 71 72 75 78 79 80 81 83 85 89 90 100
输出样例:
区间[0,60)有2个数据,占比10.00%
区间[60,70)有4个数据,占比20.00%
区间[70,80)有7个数据,占比35.00%
区间[80,90)有5个数据,占比25.00%
区间[90,100)有1个数据,占比5.00%
解答过程
#include <stdio.h>
int main() {
int n, k;
scanf("%d", &n);
int intervals[n];
for (int i = 0; i < n; ++i) {
scanf("%d", &intervals[i]);
}
scanf("%d", &k);
int data[k];
for (int i = 0; i < k; ++i) {
scanf("%d", &data[i]);
}
int counts[n];
for (int i = 0; i < n; ++i) {
counts[i] = 0;
}
for (int i = 0; i < k; ++i) {
for (int j = 0; j < n - 1; ++j) {
if (data[i] >= intervals[j] && data[i] < intervals[j + 1]) {
counts[j]++;
break;
}
}
}
for (int i = 0; i < n - 1; ++i) {
float percentage = (float)counts[i] / k * 100;
printf("区间[%d,%d)有%d个数据,占比%.2f%%\n", intervals[i], intervals[i + 1], counts[i], percentage);
}
return 0;
}
文章来源:https://blog.csdn.net/WeiYan_2022/article/details/135073359
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!