#c #сортировка
void main(void) { srand(time(NULL)); int A[N][M], circles = N + M, swap; for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { A[i][j] = 3 + rand() % 100; } } while (circles) { for (int i = 0; i < (circles - 1); i++) { if (*(A + i) > *(A+i+1)) /*ругается на этот if*/ { swap = *(A + i); *(A + i) = *(A + i + 1); *(A + i + 1) = swap; } } circles--; } } Пишет ошибку: Error 3 error C2106: '=' : left operand must be l-value В чём может быть дело?
Ответы
Ответ 1
Вы пытаетесь сравнивать строки матрицы и менять их между собой, однако оператора сравнения строк матрицы и оператора присваивания int[] к int[] у вас не существует. На то и ругается.Ответ 2
на две строчки после swap = *(A+i); *(A + i) = *(A + i + 1); *(A + i + 1) = swap; Что здесь получается? Упрощённо? int = int int = int А что надо? &int = int &int = int Слева должна быть ссылка, а не абсолютное значение. Кроме того, на вскидку размер массива странно рассчитывается - N+M, вместо N*M.
Комментариев нет:
Отправить комментарий