Написать матрицу на СИ размером 8 строк*9 столбцов на краях которой были бы единицы, внутри нули

Нужно создать матрицу размерности A x B, состоящую из нулей, за исключением элементов, которые находятся в крайних столбцах и строках - они равные единице.

Матрица статическая, её размерность A = 8, B = 9. Так же матрицу нужно вывести дважды: по строкам и столбцам с соответствующими заголовками.

Вот пример кода:

#include <stdio.h>
#define ROW 8
#define COL 9

int main()
{
    int array[ROW][COL];
    for (int i = 0; i < ROW; i++) {
        for (int j = 0; j < COL; j++) {
            if ((i == 0) && (j == 0))
                array[i][j] = 0;
            else
                array[i][j] = 1;
            printf("%d ", array[i][j]);
        }
        printf("\n");
    }
    return 0;
}

Код выдаёт следующее:

0 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1

В чем может быть ошибка?


Ответы (2 шт):

Автор решения: Mikhailo

Можно так:

int main() {
    int array[8][9];

    for (int row = 0; row < 8; row++) {
        for (int col = 0; col < 9; col++) {
            if (row == 0 || row == 7 || col == 0 || col == 8)
                array[row][col] = 1;
            else
                array[row][col] = 0;
            }
        }
    }

Только вы свой код в вопросе привеите текстом, а не картинкой.

→ Ссылка
Автор решения: Павел Ериков

Вот пример кода:

#include <stdio.h>
#define ROW 8
#define COL 9
int main()
{
    //Если определяем переменную в функции, то её значения не определенные
    //это можно исправить следующим способом.
    //Теперь все элементы нашей матрицы будут равны 0
    int array[ROW][COL] = { 0 };

    for (int i = 0; i < ROW; i++)
    {
        for (int j = 0; j < COL; j++)
        {
            //Только элементов лежащих на сторонах одна из координат
            //равна 0 или ROW - 1 или COL - 1 в зависимости от переменной (i или j)
            //так что только им и присваиваем 1
            if (i == 0 || j == 0 || i == ROW - 1 || j == COL - 1) 
                array[i][j] = 1;
            printf("%d ", array[i][j]);
        }
        printf("\n");
    }
    return 0;
}
→ Ссылка