Написать матрицу на СИ размером 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;
}