Невозможно присвоить значения массиву - PullRequest
0 голосов
/ 16 ноября 2011

Посмотрите на этот фрагмент кода .. В этом я беру входные данные из файла и присваиваю массиву sudoku [] [] .. и одновременно присваиваю эти значения TempArr [][] (другой массив) ..

Но когда я проверил значения TempArr [] [] после присваивания, они не такие, как в судоку [] [].

for (i=0;i<size;i++)
{
    for (j=0;j<size;j++)
    {
        if(fscanf(ip_file,"%d",&sudoku[i][j])==1)
        {         
                  //copy to TempArr
                  TempArr[i][j]==sudoku[i][j];
        }
        else
        {
            perror ("fscanf failed on input file.\n");
            // return error
        }
    }
}

Итак, когда я заменил «sudoku [] []» на «TempArr [] []», он работает .. т.е. if(fscanf(ip_file,"%d",&TempArr[i][j])==1)

Почему это происходит иКак мне справиться с этой ситуацией?

Ответы [ 2 ]

5 голосов
/ 16 ноября 2011
TempArr[i][j]==sudoku[i][j];

Видите ==? Это не будет присваивать;)

Редактировать: Также стоит отметить - компилятор может помочь вам с этими вещами. Если при компиляции вы используете опцию -Wall, она скажет вам:

> gcc -Wall -o test test.c
test.c: 13: 9: предупреждение: инструкция без эффекта [-Wunused-value]

Существует ряд полезных уровней предупреждения, которые вы можете указать, чтобы предупредить вас об этих вещах:

http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

1 голос
/ 16 ноября 2011

Э-э, == - это не задание, это проверка на равенство.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...