11607. ASCII искусство

 

Дана матрица A размером h ? w, состоящая из целых чисел от 0 до 26. Элемент, расположенный в i-й строке сверху и j-м столбце слева, обозначается как Ai,j.

Пусть s1, s2, …, shстроки длины w, определённые следующим образом:

Выведите строки s1, s2, …, sh, по одной в каждой строке.

 

Вход. Первая строка содержит два целых числа h и wвысоту и ширину матрицы A.

Следующие h строк содержат по w целых чиселэлементы матрицы A.

 

Выход. Выведите h строк. В i-й строке выведите строку si.

 

Пример входа 1

Пример выхода 1

2 3

0 1 2

0 0 3

.AB

..C

 

 

Пример входа 2

Пример выхода 2

3 3

24 0 0

0 25 0

0 0 26

X..

.Y.

..Z

 

 

РЕШЕНИЕ

двумерный массив

 

Анализ алгоритма

Дана матрица размером h ? w. Каждое число нужно заменить символом:

·        если число равно 0, выводим точку.

·        если число от 1 до 26, выводим соответствующую заглавную букву английского алфавита.

Пусть Ai,j = x. Известно, что значению x = 1 соответствует буква ‘A’, а значению x = 26 соответствует буква ‘Z’. Поэтому если Ai,j = x, то в соответствующей позиции следует вывести символ x + ‘A’ – 1.

 

Реализация алгоритма

Читаем размеры матрицы.

 

scanf("%d %d", &h, &w);

 

Проходим по матрице и для каждого значения x выводим соответствующий символ.

 

for (i = 0; i < h; i++)

{

  for (j = 0; j < w; j++)

  {

 

    scanf("%d", &x);

    if (x == 0) printf(".");

    else printf("%c", x + 'A' - 1);

  }

  printf("\n");

}