c语言从键盘输入每小时登录网络的用户数到一个有24个整型元素的数组中。写一个程序以如下格式显示一个报告: 时间 登录人数 所占比例 0:00 – 1:00 1 0.3 1:00 – 2:00 2 0.7 … 10:00 - 11:00 27 9.0 11:00 - 12:00 28 9.3 … 23:00 - 24:00 8 2.7 最大登录人数28发生在11:00到12:00之间 最小登录人数 1发生在 0:00到 1:00之间(两个时间段登录人数相同时,取排在前面的时间) **输入格式要求:"%d" 提示信息:"请输入在%d:00和%d:00之间登录的用户数:" **输出格式要求: " 时间 登录人数 所占比例\n" "%2d:00 - %2d:00 %15d %25.1f\n" "最大登录人数%d发生在%2d:00到%2d:00之间\n" "最小登录人数%d发生在%2d:00到%2d:00之间\n"
时间: 2024-01-31 21:02:46 浏览: 20
以下是代码实现:
```c
#include <stdio.h>
int main() {
int users[24];
int max_index = 0, min_index = 0;
float total = 0.0;
for (int i = 0; i < 24; i++) {
printf("请输入在%d:00和%d:00之间登录的用户数:", i, i+1);
scanf("%d", &users[i]);
if (users[i] > users[max_index]) {
max_index = i;
}
if (users[i] < users[min_index]) {
min_index = i;
}
total += users[i];
}
printf(" 时间 登录人数 所占比例\n");
for (int i = 0; i < 24; i++) {
printf("%2d:00 - %2d:00 %15d %25.1f%%\n", i, i+1, users[i], users[i]/total*100.0);
}
printf("最大登录人数%d发生在%2d:00到%2d:00之间\n", users[max_index], max_index, max_index+1);
printf("最小登录人数%d发生在%2d:00到%2d:00之间\n", users[min_index], min_index, min_index+1);
return 0;
}
```
程序的思路是先定义一个有 24 个整型元素的数组 `users`,然后使用循环输入每小时登录网络的用户数。在输入的过程中,同时记录最大登录人数和最小登录人数发生的时间段,以及所有登录人数的总和。
然后,使用循环遍历数组 `users` 中的每个元素,按照要求输出每小时登录人数、所占比例和时间段。需要注意的是,所占比例需要乘以 100 并保留一位小数,并在输出时加上百分号。
最后,输出最大登录人数和最小登录人数发生的时间段及登录人数即可。