如何在main()外定义RandomNumber函数并在main()内正确调用?
如何在main()外部定义随机数函数并正确调用?
你当前代码出现乱码的核心原因是调用函数时没有传递参数,直接输出了函数的内存地址,而非函数返回的随机数。以下是修正方案:
关键修正点
- 调用
RandomNumber时必须传入userNum1和userNum2这两个参数,不能直接写函数名; - 随机种子
srand(time(NULL))只需要在main中初始化一次,不要在RandomNumber函数内重复调用,否则会破坏随机数的随机性; - 额外建议:增加范围合法性判断,避免用户输入的第二个数小于等于第一个数时出现取模异常。
修正后的完整代码
#include <iostream> #include <ctime> using namespace std; // 外部定义的随机数生成函数 int RandomNumber(int userNum1, int userNum2) { // 处理输入范围不合法的情况 if (userNum2 <= userNum1) { swap(userNum1, userNum2); } return rand() % (userNum2 - userNum1) + userNum1; } int main() { srand(time(NULL)); // 仅初始化一次随机种子 int userNum1, userNum2; cin >> userNum1 >> userNum2; // 正确调用函数并输出结果 cout << RandomNumber(userNum1, userNum2) << endl; return 0; }
内容的提问来源于stack exchange,提问作者ajsmith5150
相关产品推荐
相关产品推荐

