编写程序实现以下功能: 让计算机生成一个[1-100]以内的整数, 然后提示用户猜测数的大小,根据情况提示用户“大了”,“小了”,“恭喜你,经过x次您猜对了!”, 直到用户猜对为止。 (1)生成随机数的过程写成函数 如 int generate_number(int a, int b); //随机生成[a,b]之间的一个整数 (2)猜数的过程写成函数 int guess(int x);// 要求数据输入,信息提示, 次数统计均在该函数内完成 猜对返回0 ,并提示经过多次猜对(存放次数的变量采用局部静态变量)。 猜错返回-1 ,并有“大了”,“小了” 的提示。 (3)在主函数内调用以上函数实现功能
时间: 2023-06-06 22:05:58 浏览: 53
抱歉,我可以回答您的问题。
以下是实现您所要求的程序的代码:
```c++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int generate_number(int a, int b)
{
srand(time(NULL)); // 设置随机种子为当前时间
return rand() % (b - a + 1) + a;
}
int guess(int x)
{
static int count = 0; // 存放猜测次数的局部静态变量
int n;
count++;
cout << "请猜一个数(" << x << "):" << endl;
cin >> n;
if (n == x)
{
cout << "恭喜你,经过" << count << "次猜对了!" << endl;
return 0;
}
else if (n > x)
{
cout << "猜大了,";
}
else
{
cout << "猜小了,";
}
cout << "请继续猜!" << endl;
return -1;
}
int main()
{
int a = 1, b = 100;
int x = generate_number(a, b);
while (guess(x) != 0); // 如果猜测正确,退出循环
return 0;
}
```
该程序使用了两个函数:`generate_number(int a, int b)` 和 `guess(int x)`。
`generate_number(int a, int b)` 用于生成一个 [a,b] 之间的随机整数。
`guess(int x)` 用于处理用户的猜测。它会输出提示信息,读取用户输入的猜测,统计猜测次数,并返回一个值,表示猜测是否成功。
在主函数内,我们首先调用 `generate_number(int a, int b)` 生成一个随机整数,然后使用一个循环不断调用 `guess(int x)`,直到用户猜对为止。
注意到存放猜测次数的变量使用了一个局部静态变量。这样每次函数调用结束,该变量的值不会被销毁,下次函数调用时可以继续使用。这就使得我们可以方便地统计猜测次数,而不需要在每次函数调用时手动传入一个计数器变量。