Для всех подобных задач решение однотипное, по индексам 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;
Вот такая программа для горизонтального коридора в одну клетку шириной и для начального положения робота в левом конце коридора.
Если радиации в коридоре не найдено, программа выводит об этом сообщение (без вывода цифровой статистики при этом).
использовать Робот
алг
нач
вещ макс=0 | максимальный найденный уровень радиации
цел счёт=0 | число наиболее заражённых клеток
нц
если радиация>макс то макс:=радиация все
если справа свободно то вправо иначе выход все
кц
если макс=0 то вывод 'радиации в коридоре нет'; выход все
нц
если радиация=макс то закрасить; счёт:=счёт+1 все
если слева свободно то влево иначе выход все
кц
вывод 'макс.уровень радиации= ',макс,нс
вывод 'клеток с таким уровнем= ',счёт
кон
в первом все просто все заполняем 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;