Для всех подобных задач решение однотипное, по индексам i,j в массиве определяется что вписать в ячейку в первом все просто все заполняем 5 #include <stdio.h> int main(void) { int i,j num[5][5]; /* загрузка чисел */ for(i=0; i<5; i++) for (j=0; j<5; j++) num[i][j] = 5;
/* вывод чисел */ for(i=0; i<5; i++) { for (j=0; j<5; j++) printf("%d ",num[i][j]); printf ("\n"); } return 0; } во втором чуть сложнее, если сумма индексов i+j меньше размера массива, то пишем 1, в противном случае 0, инициализация и вывод без изменений их не пишу for(i=0; i<5; i++) for (j=0; j<5; j++) if (i+j<5) num[i][j]=1; else num[i][j]=0;
Известно что: (1) Слесарь живет левее Учителя (2) Парикмахер живет правее Учителя Значит учитель живет по между ними С У П (3) Врач живет с краю (4) Врач живет рядом с Парикмахером Значит Врач живет с права С У П В
в первом все просто все заполняем 5
#include <stdio.h>
int main(void)
{
int i,j num[5][5];
/* загрузка чисел */
for(i=0; i<5; i++)
for (j=0; j<5; j++)
num[i][j] = 5;
/* вывод чисел */
for(i=0; i<5; i++)
{
for (j=0; j<5; j++)
printf("%d ",num[i][j]);
printf ("\n");
}
return 0;
}
во втором чуть сложнее, если сумма индексов i+j меньше размера массива, то пишем 1, в противном случае 0,
инициализация и вывод без изменений их не пишу
for(i=0; i<5; i++)
for (j=0; j<5; j++)
if (i+j<5) num[i][j]=1;
else num[i][j]=0;
Известно что:
(1) Слесарь живет левее Учителя
(2) Парикмахер живет правее Учителя
Значит учитель живет по между ними
С У П
(3) Врач живет с краю
(4) Врач живет рядом с Парикмахером
Значит Врач живет с права
С У П В
Построим таблицу
С У П В
И
Б
М
А
(5) Борис не Врач и не живет рядом с Врачом
С У П В
И
Б Х Х
М
А
(6) Андрей живет рядом с Учителем
С У П В
И
Б Х
М
А Х Х
(7) Иван живет левее Парикмахера
С У П В
И Х Х
Б Х Х
М
А Х Х
(8) Иван живет через дом от Андрея
С У П В
И + Х Х Х
Б Х + Х Х
М Х Х Х +
А Х Х + Х