从键盘输入每小时登录网络的用户数到一个有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"
程序运行示例:
请输入在23:00和24:00之间登录的用户数:9
时间 登录人数 所占比例
0:00 - 1:00 3 0.6
1:00 - 2:00 8 1.7
2:00 - 3:00 2 0.4
3:00 - 4:00 3 0.6
4:00 - 5:00 1 0.2
5:00 - 6:00 0 0.0
6:00 - 7:00 0 0.0
7:00 - 8:00 0 0.0
8:00 - 9:00 7 1.5
9:00 - 10:00 56 11.8
10:00 - 11:00 4 0.8
11:00 - 12:00 34 7.2
12:00 - 13:00 56 11.8
13:00 - 14:00 56 11.8
14:00 - 15:00 34 7.2
15:00 - 16:00 13 2.7
16:00 - 17:00 12 2.5
17:00 - 18:00 10 2.1
18:00 - 19:00 56 11.8
19:00 - 20:00 78 16.5
20:00 - 21:00 12 2.5
21:00 - 22:00 12 2.5
22:00 - 23:00 7 1.5
23:00 - 24:00 9 1.9
最大登录人数78发生在19:00到20:00之间
最小登录人数0发生在 5:
#include<stdio.h>
int main()
{
int time = 0, x = 0, k = 0;
double point[24] = { 0 },al=0;
int num[24] = { 0 };
int max_1 = 0, min_1 = 0;
for (x = 0; x <= 23; x++)
{
printf("请输入在%d:00和%d:00之间登录的用户数:",x,x+1);
scanf_s("%d", &num[x]);
al = num[x] + al;
}
for (k = 0; k <= 23; k++)
{
point[k] = num[k] / al*100;
}
int max = num[0], min = num[0];
for (int n = 0; n <= 23; n++)
{
if (num[n] > max)
{
max = num[n];
}
if (num[n] < min)
{
min = num[n];
}
}
for (int z = 0; z <= 23; z++)
{
if (num[z] == max)
{
max_1 = z;
break;
}
}
for(int b=0;b<=23;b++)
{
if (num[b] == min)
{
min_1 = b;
break;
}
}
printf(" 时间 登录人数 所占比例\n");
for (int m = 0; m <= 23; m++)
{
printf("%2d:00 - %2d:00 %15d %25.1f\n", m, m + 1, num[m], point[m]);
}
printf("最大登录人数%d发生在%2d:00到%2d:00之间\n", max, max_1, max_1 + 1);
printf("最小登录人数%d发生在%2d:00到%2d:00之间\n", min, min_1, min_1 + 1);
return 0;
}
00到 6:00之间