C++编程高手,目前我在教我的妹妹使用rand()函数。哦对了,她正在读幼儿园。所以每当我妹妹需要生成从a到b的随机数时,她就会来问我C++语句怎么写。于是我要写一个C++程序教我妹妹怎么写C++语句。例如: 妹妹想要生成从0到3的随机数时,我的程序会告诉她rand()%4; 妹妹想要生成从2到4的随机数时,我的程序会告诉她rand()%3+2; 妹妹想要生成从-5到-1的随机数时,我的程序会告诉她rand()%5-5; 输入样例: 0 3 输出样例: rand()%4; 输入样例: 2 4 输出样例: rand()%3+2; 输入样例: -5 -1 输出样例: rand()%5-5;
时间: 2024-03-26 22:41:22 浏览: 130
以下是一个使用C++编写的程序,用于根据用户输入的取值范围生成随机数:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int a, b;
cout << "请输入取值范围(a b):";
cin >> a >> b;
// 设置随机数种子
srand(time(NULL));
// 生成随机数
if (a >= 0 && b >= 0) {
cout << "rand() % " << (b - a + 1) << " + " << a << ";" << endl;
} else if (a >= 0 && b < 0) {
cout << "rand() % " << (a - b + 1) << " - " << abs(b) << ";" << endl;
} else if (a < 0 && b >= 0) {
cout << "rand() % " << (a + abs(b) + 1) << " - " << abs(a) << ";" << endl;
} else {
cout << "rand() % " << (abs(a - b) + 1) << " + " << min(a, b) << ";" << endl;
}
return 0;
}
```
程序根据用户输入的范围 a 和 b,使用 srand() 函数设置随机数种子,然后根据 a 和 b 的正负情况,生成相应的随机数表达式。如果 a 和 b 都非负,则使用 rand() % (b - a + 1) + a 生成从 a 到 b 的随机数;如果 a 和 b 都负数,则使用 rand() % (|a - b| + 1) + min(a, b) 生成从 a 到 b 的随机数;如果 a 和 b 异号,则根据它们的大小关系,分别生成从 a 到 0、从 0 到 b 或从 a 到 b 的随机数表达式。
例如,如果用户输入 2 和 4,则程序会输出 rand() % 3 + 2; 表示生成从 2 到 4 的随机数。
阅读全文