在c语言中,现有数字记忆力评测软件,目前只能测试一次,要求拓展软件功能,实现5,6,7,8位随机整数的测试,4次测试完成后,输出正确率以及输入平均花费时间。要求将生成n位随机整数代码写成函数形式int initrnd(int n),将等待1秒钟写成函数void delayz
时间: 2023-10-08 16:12:48 浏览: 46
实现此功能,可以按照以下步骤进行:
1. 编写生成n位随机整数的函数initrnd,函数原型为int initrnd(int n),返回一个n位的随机整数。
2. 编写等待1秒钟的函数delayz,函数原型为void delayz(),使用C语言的sleep函数实现。
3. 在主函数中,循环4次,每次调用initrnd生成一个n位随机整数,并显示在屏幕上。然后等待用户输入答案,计算用户输入的时间,并与生成的随机整数进行比较,判断答案是否正确,并统计正确率和平均花费时间。
下面是一份参考代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
int initrnd(int n);
void delayz();
int main()
{
int n, i, ans, guess, correct = 0, total_time = 0;
srand(time(NULL)); // 初始化随机数种子
printf("请输入要测试的数字位数(5-8):");
scanf("%d", &n);
for (i = 0; i < 4; i++) {
ans = initrnd(n);
printf("%d位随机整数为:%d\n", n, ans);
printf("请输入你的答案:");
fflush(stdout); // 刷新输出缓冲区
time_t start = time(NULL);
scanf("%d", &guess);
time_t end = time(NULL);
total_time += end - start;
if (ans == guess) {
printf("恭喜你,答对了!\n");
correct++;
} else {
printf("很遗憾,答错了!正确答案为:%d\n", ans);
}
delayz(); // 等待1秒钟
}
printf("正确率:%.2f%%\n", (float)correct / 4 * 100);
printf("平均花费时间:%.2f秒\n", (float)total_time / 4);
return 0;
}
int initrnd(int n)
{
int i, num = 0;
for (i = 0; i < n; i++) {
num = num * 10 + rand() % 10;
}
return num;
}
void delayz()
{
sleep(1);
}
```