Рисование геометрической фигуры С(Си) - C (СИ)
Формулировка задачи:
# include<stdio.h>
int main() {
int n=10, i,j;
//C
for (i=0; i<n; i++)
{
for(j=0; j<i; j++)
printf(" ");
for(j=n-i; j>0;j--)
printf("*");
printf("\n");
}
return 0;
}Помогите нарисовать это, я уже много чего перепробовала но не могу составить правильный код, пока что у меня получилось только нарисовать треугольник, но это не то что мне нужно... Мне говорили, что по аналогии пишеться и мой код, но я немогу поняь как мне получить это... Если можете напишите мне пожалуйста код! Заранее спасибо!!!
Решение задачи: «Рисование геометрической фигуры С(Си)»
textual
Листинг программы
#include <stdio.h>
void func(int width, int count) {
int i, j;
if (width % 2 == 0) {
width++;
}
while (count-- > 0) {
for (i = 0; i < width; ++i) {
for (j = 0; j < width; ++j) {
if ((i == j) || (width - i - 1 == j) ||
(width / 2 == i) || (width / 2 == j)) {
putchar('*');
}
else {
putchar('-');
}
}
putchar('\n');
}
}
}
int main() {
int w, c;
if (scanf("%d %d", &w, &c) == 2) {
func(w, c);
}
return 0;
}
Объяснение кода листинга программы
- В функции
funcопределены две переменныеiиjтипаint. - Проверяется условие
width % 2 == 0, если оно истинно, то кwidthприбавляется единица. - Задаётся два вложенных цикла
for, первый из которых выполняетсяwidthраз, а второй -widthраз. - В блоке вложенных циклов проверяется условие, при котором на текущую позицию в массиве выводится символ '*'.
- Если условие не выполняется, то на текущую позицию в массиве выводится символ '-'.
- После окончания вложенных циклов выводится символ новой строки '\n'.
- В функции
mainопределены две переменныеwиcтипаint. - С помощью функции
scanfв переменныеwиcсчитываются значения, введенные пользователем. - Если
scanfвернул значение 2, то вызывается функцияfuncс аргументамиwиc. - Значения
wиcвыводятся на экран. - Функция
mainвозвращает 0, что означает успешный конец работы программы.