用户输入一个正整数作为随机种子,根据这个随机种子,产生40个选择题的答案,也就是产生40个随机字母,每个字母是大写字母ABCD中的某一个。提醒:
(1) 务必用srand( )函数进行随机初始化。
(2)你在Windows下的运行结果,和Linux服务器上的运行结果,是不一致的。因此,在本地只管确保程序调试通过,能输出相应格式的信息后,提交代码在服务器上验证。
输入格式:
1到32767之间(含边界)的整数。
输出格式:
40个选择题的答案,及统计数据。
输入样例:
用户输入随机种子322。
322
输出样例:
数字序号用两位数,不足两位前面填充0;数字之后是一个纯英文的点;之后是随机产生的答案,大写字母;再接下来是两个空格。每一组答案信息后都有两个空格,例如下面第一行的“05.A ”之后,也是有两个空格的。
打印5个答案信息后,产生一个换行。
40个答案信息都打印完毕后,打印统计数据。字母后面是纯英文的冒号,然后是保留两位小数的百分比,四组统计数据之间有三组空格,每组空格都是两个空格。
01.A 02.C 03.A 04.C 05.A
06.D 07.A 08.B 09.B 10.C
11.C 12.C 13.A 14.D 15.D
16.C 17.C 18.D 19.B 20.C
21.C 22.A 23.A 24.B 25.C
26.A 27.C 28.C 29.C 30.B
31.A 32.D 33.D 34.A 35.B
36.D 37.D 38.B 39.A 40.A
A:30.00% B:17.50% C:32.50% D:20.00%
代码
/*#include<stdio.h>
#include<stdlib.h>
int main()
{
unsigned int roots,A=0,B=0,C=0,D=0,count=1;
scanf("%d",&roots);
srand(roots);
for(int i=1;i<=40;i++)
{
//roots--;
//printf("随机数%d ",rand());
if(i<10)
{
switch(rand()%10)
{
case 0 :A++;printf("0%d.A ",count);break;
case 1 :B++;printf("0%d.B ",count);break;
case 2 :C++;printf("0%d.C ",count);break;
case 3 :D++;printf("0%d.D ",count);break;
case 4 :A++;printf("0%d.A ",count);break;
case 5 :B++;printf("0%d.B ",count);break;
case 6 :C++;printf("0%d.C ",count);break;
case 7 :D++;printf("0%d.D ",count);break;
case 8 :A++;printf("0%d.A ",count);break;
case 9 :B++;printf("0%d.B ",count);break;
}
}
else
{
switch(rand()%10)
{
case 0 :A++;printf("%2d.A ",count);break;
case 1 :B++;printf("%2d.B ",count);break;
case 2 :C++;printf("%2d.C ",count);break;
case 3 :D++;printf("%2d.D ",count);break;
case 4 :A++;printf("%2d.A ",count);break;
case 5 :B++;printf("%2d.B ",count);break;
case 6 :C++;printf("%2d.C ",count);break;
case 7 :D++;printf("%2d.D ",count);break;
case 8 :A++;printf("%2d.A ",count);break;
case 9 :B++;printf("%2d.B ",count);break;
}
}
count++;
if(i%5==0){printf("\n");}
}
printf("A:%.2f%% ",A/40.0*100);
printf("B:%.2f%% ",B/40.0*100);
printf("C:%.2f%% ",C/40.0*100);
printf("D:%.2f%%\n",D/40.0*100);
return 0;
}*/
#include <stdio.h>
#include <stdlib.h>
int main() {
int answer[40], A = 0, B = 0, C = 0, D = 0;
unsigned int seed;
scanf("%d", &seed);
srand(seed);
for (int i = 0; i < 40; ++i) {
answer[i] = rand() % 4 + 65;
if(answer[i] == 'A'){
A++;
} else if(answer[i] == 'B'){
B++;
} else if(answer[i] == 'C'){
C++;
} else if(answer[i] == 'D'){
D++;
}
}
for (int i = 0; i < 40; ++i) {
printf("%02d.%c ", i + 1, answer[i]);
if ((i + 1) % 5 == 0) {
printf("\n");
}
}
printf("A:%.2lf%% B:%.2lf%% C:%.2lf%% D:%.2lf%%\n",A/40.0*100,B/40.0*100,C/40.0*100,D/40.0*100);
return 0;
}