c++编写“猜数字游戏,要求:该游戏可以由程序随机产生一个 N 位数字,或者用户输入一个 N 位数字,作为待猜测数字,玩游戏者开始猜测后,可以有 M 次机会输入数字来匹配上面的待猜测数字,用户每输入一次,系统给出本次猜测结果:A 表示位置正确且狮数字正确;B 表示数字正确而位置不正确。某次猜中后,游戏结束,若 M 次机会用完,游戏也结束”的程序
时间: 2024-03-06 12:51:38 浏览: 16
好的,这是一个猜数字游戏的 C++ 程序,可以满足您的要求:
```c++
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
int n, m, cnt = 0;
cout << "请输入数字的位数:";
cin >> n;
cout << "请输入您想要的猜测次数:";
cin >> m;
// 生成随机数
srand(time(0));
int num[n];
for (int i = 0; i < n; i++) {
num[i] = rand() % 10;
}
cout << "游戏开始!" << endl;
while (cnt < m) {
int guess[n];
cout << "请输入您猜测的数字:";
for (int i = 0; i < n; i++) {
cin >> guess[i];
}
int A = 0, B = 0;
for (int i = 0; i < n; i++) {
if (guess[i] == num[i]) {
A++;
} else {
for (int j = 0; j < n; j++) {
if (guess[i] == num[j]) {
B++;
break;
}
}
}
}
cout << "本次猜测结果:A" << A << "B" << B << endl;
if (A == n) {
cout << "恭喜您猜中了!" << endl;
break;
}
cnt++;
}
if (cnt == m) {
cout << "很遗憾,您没有在" << m << "次内猜中数字。" << endl;
cout << "正确答案为:";
for (int i = 0; i < n; i++) {
cout << num[i];
}
cout << endl;
}
return 0;
}
```
程序首先要求用户输入数字的位数 `n` 和猜测次数 `m`,然后用 `srand` 和 `rand` 生成一个随机的 `n` 位数字,存储在数组 `num` 中。接着进入游戏循环,每次循环中要求用户输入自己猜测的数字,存储在数组 `guess` 中,并对 `guess` 和 `num` 进行比较,计算出猜测结果的 A 和 B 值。如果猜测结果的 A 值等于 `n`,即全部猜对了,那么游戏结束,输出恭喜信息;如果猜测次数达到了 `m`,那么也输出游戏失败信息和正确答案。
阅读全文