8945. *Рамка 4

 

Для заданных натуральных чисел n и m вывести прямоугольную рамку размером n * m из звездочек, заполненную пробелами как показано в примере.

 

Вход. Два натуральных числа n и m (n, m ≤ 100).

 

Выход. Выведите прямоугольную рамку размером n * m.

 

Пример входа

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

4 7

*******

*     *

*     *

*******

 

 

РЕШЕНИЕ

циклы

 

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

Прямоугольную рамку n * m рисуем следующим образом:

·        В первой строке выводим m звездочек;

·        Выводим n – 2 строки. В каждой строке выводим звездочку, m – 2 пробела и еще одну звездочку если только m > 1;

·        В последней n-ой строке выводим m звездочек если только n > 1;

 

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

Читаем входные значения n и m.

 

scanf("%d %d", &n, &m);

 

Выводим первую строку – m звездочек.

 

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

  printf("*");

printf("\n");

 

Выводим n – 2 строки. В каждой строке выводим звездочку, m – 2 пробела и еще одну звездочку если только m > 1.

 

for (i = 0; i < n - 2; i++)

{

  printf("*");

  for (j = 0; j < m - 2; j++)

    printf(" ");

  if (m > 1) printf("*");

  printf("\n");

}

 

Выводим последнюю строку – m звездочек. Ее выводим только если n > 1.

 

if (n > 1)

{

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

    printf("*");

  printf("\n");

}