gpt4 book ai didi

c - 如何在 C 中将变量分配给 rand() ?

转载 作者:行者123 更新时间:2023-11-30 15:52:33 25 4
gpt4 key购买 nike

Possible Duplicate:
Generate a random number within range?

我试图做到这一点,以便在执行代码时,我可以输入最大数字命令提示符重新定义最大数并生成 0 和新最大数之间的新随机数。

我这样做正确吗?

#include <stdlib.h>
#include <stdio.h>
#include <time.h>


int main()
{
int randomnumber ;
int max;
srand( time(NULL) );
scanf("Enter total number of students %d",&max);
randomnumber=rand()% 30;
printf("This is your random number\n %d",randomnumber);
getchar();
return 0;
}

最佳答案

您已使用 scanf 向用户发送消息,但您需要使用 printf 来发送消息。尝试:

printf("%s", "Enter total number of students: ");
scanf("%d",&max);

然后,您可以将 %30 更改为 %max,为用户提供 0 到 max - 1 之间的数字。

randomnumber=rand()% max;

正如评论者所说,使用模来减少 rand() 的范围不会给你一个好的随机分布。另外,请务必检查 max 是否大于 0,否则会出现错误。

如果您想知道为什么此时 max 的值很大,那是因为您没有显式初始化 max。对于 C 和 C++,这意味着其中可能存在垃圾数据。它不像 Java 或 C#,int 自动初始化为 0。

关于c - 如何在 C 中将变量分配给 rand() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14353611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com