c++ 小明喜欢小美,计划每天都去表白,共表白30天。 每天的表白流程是:送花、说喜欢、邀请一起看电影 每天在送完花后,小美有10%的几率会愤怒,那么,小明的表白计划就彻底停止。 每天在送完花后,小美有50%的几率会不高兴,那么今天的表白流程结束,第二天继续。
时间: 2024-09-13 13:15:23 浏览: 12
这是一个涉及概率计算和循环流程控制的问题。在C++中,我们可以使用循环结构(如`for`或`while`循环)来模拟小明每天的表白流程,并通过随机数生成来模拟小美每天的情绪反应。下面是一个可能的实现方式:
```cpp
#include <iostream>
#include <cstdlib> // 包含rand()和srand()
#include <ctime> // 包含time()
int main() {
srand(time(0)); // 设置随机数种子
const int totalDays = 30; // 总表白天数
int currentDay = 0; // 当前表白天数
while (currentDay < totalDays) {
std::cout << "小明给小美送花..." << std::endl;
// 检查小美是否会愤怒
if (rand() % 10 == 0) { // 生成0到9的随机数,如果为0,则概率为10%
std::cout << "小美愤怒了!小明的表白计划结束。" << std::endl;
break;
}
// 检查小美是否不高兴
if (rand() % 2 == 0) { // 生成0或1的随机数,概率为50%
std::cout << "小美今天不高兴,流程结束。小明明天继续。" << std::endl;
currentDay++;
continue;
}
// 如果小美既不愤怒也不不高兴,则进行下一步
std::cout << "小明说喜欢小美..." << std::endl;
std::cout << "邀请小美一起看电影..." << std::endl;
// 表白成功,结束循环
std::cout << "小美接受了小明的邀请,表白成功!" << std::endl;
break;
}
if (currentDay == totalDays) {
std::cout << "30天过去了,小美都没有接受小明的邀请。表白失败。" << std::endl;
}
return 0;
}
```
在上述代码中,我们使用了`rand()`函数来生成随机数,并通过取模运算来控制概率。`rand() % 10`生成一个0到9之间的随机数,当结果为0时,表示小美愤怒了,概率为10%。同样地,`rand() % 2`生成一个0或1的随机数,表示小美有50%的概率不高兴。如果都不满足,则小明会继续进行表白流程。