用户输入一个正整数作为随机种子,根据这个随机种子,产生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(){
int n,i;
int a=0,b=0,c=0,d=0;
double a1=0,b1=0,c1=0,d1=0;
int arr[40];
scanf("%d",&n);
srand(n);
for(i = 0 ; i < 40 ; i++ ){
arr[i] = rand() % 4+65;
// printf("%d",arr[i]);
}
for(int j = 0;j < 40; j++){
if(arr[j] == 65){
a++;
}
else if(arr[j] == 66){
b++;
}
else if(arr[j] == 67){
c++;
}
else{
d++;
}
}
a1 = 2.5 * a;
b1 = 2.5 * b;
c1 = 2.5 * c;
d1 = 2.5 * d;
for (int k = 0; k < 40; k++){
if(k % 5 == 0 && k != 0){
printf("\n");
}
printf("%02d.%c ",k+1,arr[k]);
}
printf("\n");
printf("A:%.2lf%% B:%.2lf%% C:%.2lf%% D:%.2lf%%",a1,b1,c1,d1);
return 0;
}