计算正确和放错位置的数字
Counting correct and misplaced digits
这个程序是一个"密码破译者"游戏。在程序的这一部分中,计算机检查玩家猜出的数字,将它们中的每一个与密码中的每个数字进行比较,并确定该数字是"正确"还是只是"放错地方"。我无法使此部分正常工作。我在不同的传递中编写了"正确"和"放错位置"的代码,我知道我需要用字母替换原始变量,这样就不会将一个数字检查为多个数字,而是替换为"y"或"z"。当我运行程序时,"正确"和"放错位置"的值不正确。我得到的是随机值。
correct_digits = 0;
misplaced_digits = 0;
misplaced_digit = false;
/* Get and validate the player's guess using "get_player_code()"; increment guess counter */
player_code = get_player_code();
++num_guesses;
for(int x=0;x<CODE_LENGTH;x++){
if(player_code[x]==secret_code[x]){
correct_digits++;
secret_code[x]='y';
}
}
for(int x=0;x<CODE_LENGTH;x++){
for(int i=0;i<CODE_LENGTH;i++){
if(player_code[i]==secret_code[i]){
misplaced_digits++;
secret_code[i]='z';
}
}
}
/* Print player's guess and number of correct/misplaced digits */
cout << setw(40) << player_code << setw(15) << correct_digits << setw(15) << misplaced_digits << 'n';
假设player_code
和secret_code
的长度始终相同(如果player_code
更少,您将有未定义的行为(,并假设您没有向我们显示的所有代码都是正确的,那么您需要做的就是修复此检查:
if(player_code[i]==secret_code[i]){
您正在检查每个字符串中的相同字符。您希望将其中一个字符串中的字符与另一个字符串中的每个字符进行比较。您的条件应该是:
if(player_code[x]==secret_code[i]){
相关文章:
- 如何找到数字的位置并使用它们
- 统一位置和属性位置 - 是相同的数字系列吗?
- 数字的总和在奇数,甚至是字符串的位置
- 根据数字在 c++ 中作为矩阵的位置从文件中读取数字
- 计算正确和放错位置的数字
- 如何将数字0-8变成C 的0-8二进制位置
- 你如何在序列中找到数字的位置
- C 更改数字位置
- 我可以读取向量<string>::迭代器的数字位置吗?
- 将一个数字的一个数字与其当前位置相乘,然后使用递归将其和其他数字相加
- C++如何从文件中读取数字并将其分配到数组中的相应位置
- 构建一个程序,将 10 个整数放入数组中并识别重复的数字并输出它们及其位置编号的位置
- 按每行同一位置出现的 4 个数字对文本文件中的 200 行进行排序
- 我需要从用户输入中找到某些数字的位置
- 带有Overload[]运算符的C++MyInteger类,因此索引在位置i返回数字
- (c++)对数组中的重复项进行计数,然后将被计数的数字移动到另一个数组中的相应位置
- 我需要知道如何在c++中将数字四舍五入到小数点后的某个位置
- 找出数组中最小的数字及其位置
- 交换两个数字而不使用额外的空间,如果两个数字都指向相同的位置,则不起作用
- 用户正在输入10个数字,找到最大的负值及其索引/位置