牛和公牛游戏- C++
问题-执行一个名为“奶牛和公牛”的猜谜游戏。奶牛代表正确猜测的数量。多头代表在正确位置正确猜测的数量。例如,计算机有1234只,用户猜测2135只,结果是:1头公牛和3头奶牛 我已经写了代码,但是我一直得到0头公牛和0头奶牛。我已经玩了一个多小时,似乎仍然找不到问题。这个版本是用字符而不是数字完成的,但同样的规则也适用牛和公牛游戏- C++,c++,C++,问题-执行一个名为“奶牛和公牛”的猜谜游戏。奶牛代表正确猜测的数量。多头代表在正确位置正确猜测的数量。例如,计算机有1234只,用户猜测2135只,结果是:1头公牛和3头奶牛 我已经写了代码,但是我一直得到0头公牛和0头奶牛。我已经玩了一个多小时,似乎仍然找不到问题。这个版本是用字符而不是数字完成的,但同样的规则也适用 #include "std_lib.h"; vector<char> letters; vector<char> answers; void defi
#include "std_lib.h";
vector<char> letters;
vector<char> answers;
void defineletters() {
letters.push_back('a');
letters.push_back('b');
letters.push_back('c');
letters.push_back('d');
}
int testcows(char a) {
int manycows = 0;
for (int i = 0; i < letters.size(); ++i) {
if (a == letters[i]) {
++manycows;
}
}
return manycows;
}
int testposition() {
int manybulls = 0;
for (int i = 0; i < letters.size(); ++i) {
if (answers[i] == letters[i]) {
++manybulls;
}
}
return manybulls;
}
int main() {
int cows = 0;
char answer1;
char answer2;
char answer3;
char answer4;
cin >> answer1 >> answer2 >> answer3 >> answer4;
answers.push_back(answer1);
answers.push_back(answer2);
answers.push_back(answer3);
answers.push_back(answer4);
cows = testcows(answer1) + testcows(answer2) + testcows(answer3) +
testcows(answer4);
cout << testposition() << "Bulls\n" << cows - testposition()
<< "Cows\n";
keep_window_open("-");
}
defineletters从未被调用,因此向量从未被初始化,因此长度为零。defineletters从未被调用->字母未初始化哇,我知道这将是一件非常简单的事情哈哈。非常感谢。也许你应该在玩代码几个小时之前修复它。在这种状态下似乎很无聊。请尝试向代码调试语句中添加一些额外的输出,以便查看代码中发生了什么。。。。或者最好启动一个调试器,逐行检查程序。