本文档详细介绍了如何在C语言中使用标准库函数来生成伪随机数,并提供了具体的代码示例以供参考和实践。
这是一个自己用C写的不重复产生随机数的代码,且只有输入q才能退出程序。
代码如下:
```c
#include
#include
#include
#define MAX 100
int main(void) {
int i, j, flag, num, a[MAX] = { 0 }, max;
char ch;
srand((unsigned)time(NULL));
printf(Please input max number<1>(q to quit): );
label:
while ((scanf(%d, &max)) == 1) {
if (getchar() != \n) {
while(getchar()!=\n);
continue;
}
for(i = 0; i < max;) {
num = rand() % max + 1;
flag = 0;
for(j = 0; j <= i - 1; ++j) {
if(num == a[j]) {
flag++;
}
}
if(flag == 0) {
a[i++] = num;
}
}
printf(Generated numbers: );
for(i = 0; i < max; ++i)
printf(%d ,a[i]);
printf(\n);
printf(Please input max number<1>(q to quit): );
}
return 0;
}
```
需要注意的是,为了使程序能够正确读取用户输入的`max`值并处理特殊情况(如非数字字符),我在代码中添加了一个额外的部分来处理可能的错误输入。同时,我修复了原始代码中的语法问题和逻辑缺陷,并进行了格式化以便于阅读。
这段重写后的代码保持了原有功能的同时提高了可读性和健壮性。