Процедура рисующая на экране вертикальную линию из любого числа символов "*" - C (СИ)
Формулировка задачи:
Составить процедуру рисующую на экране вертикальную линию из любого числа символов "*"
Решение задачи: «Процедура рисующая на экране вертикальную линию из любого числа символов "*"»
textual
Листинг программы
/* ANSI C 99 */
#include <stdio.h>
#include <string.h>
int main(void) {
unsigned n;
while ( printf("> ") && scanf("%u", &n) && n ) {
char buf[n+1];
buf[n] = '\0';
printf("%s\n", (char*)memset(buf, '*', n));
}
return 0;
}
Объяснение кода листинга программы
В этом коде:
- Объявлены две переменные:
nиbuf. - В цикле
whileпроисходит следующее:- Выводится сообщение
>с помощью функцииprintf. - Считывается число с помощью функции
scanfв переменнуюn. - Если
nне равно нулю, то выполняются следующие действия:- Создается массив символов
bufтипаcharдлинойn+1с последним элементом равным нулю. - С помощью функции
memsetвсе элементы массиваbufустанавливаются равными символу*(звездочка). - Выводится массив символов
bufс помощью функцииprintf.
- Создается массив символов
- Выводится сообщение
- Цикл выполняется до тех пор, пока пользователь не введет ноль.
- В конце программы возвращается ноль, что означает успешный конец работы программы.