#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.
Комментариев нет:
Отправить комментарий