C++数独(起始编码器)

C++ sudoku (beginning coder)

本文关键字:编码器 数独 C++      更新时间:2023-10-16

我想提示用户输入1到9之间的9个整数,并且我想输出这些整数是有效的还是无效的,这取决于每个数字中是否有一个。这是我现在的代码:

#include <iostream>
#include "conio.h"
using namespace std;
int main(){
int sudoku[9] = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int input;
int check[9];
for (int i = 0; i < 9; i++){
    cout << "Enter 9 digits between 1 and 9: ";
    cin >> input;
    if (input > 1 || input > 9){
        cout << "incorrect";
    }
    check[input-1]++;
}
if (check != { 1, 2, 3, 4, 5, 6, 7, 8, 9 }){
    cout << "incorrect";
}
else if (check == {1, 2, 3, 4, 5, 6, 7, 8, 9}){
    cout << "correct";
}
_getch();
return 0;
}        

所以我很确定我知道哪里出了问题:检查数组。不过,我不知道怎么修。有什么建议吗?我是一个初学者,所以我不知道很多代码。

编辑:对不起,我不确定我应该问什么样的问题,而不是堆栈溢出。我想知道的是如何检查数组中是否包含按正确顺序排列的数字。

三个问题:

if (input > 1 || input > 9)

这将检查输入是否大于1或大于9,无意义。

第二个

check[input-1]++;

check是未初始化值的数组,如果将某些索引增加1,则结果将是{1,1,1,1,1,1,1,1,1}如果你幸运的话,其他的都可以。您需要先将值初始化为某个值。

第三个

check是数组,若你们将它和某个东西进行比较,你们只会比较它的指针。您需要对它进行迭代,并检查它是否包含您需要的内容。此处的相关问题