1

Тема: С, temp, двовимірний масив

Добрий вечір всім. Чи правильно я розумію, що пробіл це також символ, і не перемістивши цей пробіл кудись, я не можу на його ж місце поставити інший символ?
Ось маю такий код. Мені потрібно переставити символ з однієї позиції на іншу, але перестановка не відбувається.

Використовувала int t для того, щоб з однієї позиції забрати пробіл, і замість нього поставити символ.

void move(const int riad, const int kolona, char pole[riad][kolona], int x, int y){
    for(int riad1 = 0; riad1<riad; riad1++){
        for(int riad2 = 0; riad2<riad; riad2++){
            if(pole[riad1][x] != '   ' && pole[riad2][y] == pole[riad1][x] && pole[riad2][y] == '   '){
                int t;
                pole[riad2][y] = t;
                pole[riad1][x] = pole[riad2][y];
                t = pole[riad1][x];
            }
        }
    }
}

2

Re: С, temp, двовимірний масив

хто я написав:

Добрий вечір всім. Чи правильно я розумію, що пробіл це також символ, і не перемістивши цей пробіл кудись, я не можу на його ж місце поставити інший символ?

Абсолютно правильно. До того ж для перенесення на новий рядок теж використовується окремий символ (він позначається "\n"), і його теж за потреби можна замінювати так само як і інші.
int для символа використовується зазвичай, коли треба передати інші можливі стани. Наприклад, всі функції стандартної бібліотеки для символів працюють з int, бо може передаватися ознака завершення файла (-1) замість реального символа з кодом 0-255.
Умова не виконається ніколи. Щоб менше плутатися в квадратних дужках, позначимо pole[riad1][x] - A і pole[riad2][y] - B. Тоді умова матиме вигляд

if(A != '   ' && B == A && B == '   ')

тобто A має бути НЕ пробілом, B має бути таким самим, що й A, і при цьому пробілом. Ця умов завжди хибна.
Оператор присвоєння = бере ПРАВЕ значення і заносить його у ЛІВУ змінну, не навпаки. x=2 робить значення x рівним 2, а 2=x не має сенсу, бо неможливо змінити значення літерала 2. Ви першою операцією намагаєтеся записати неініціалізоване значення з t у pole[riad2][y], а хочете, швидше за все, навпаки.
Будь ласка, вирівнюйте код. Починаєте новий блок {} - додавайте 2 або 4 пробіли або табуляцію, завершуєте блок - прибирайте. Вам самій зручніше буде код писати.