Вы, очевидно, делаете это как домашнее задание. Вот решение. Но суть домашнего задания в том, что вам нужно понять, как это работает, что он делает и т. Д. Простое копирование моего кода не поможет вам научиться.
Здесь есть две петли. Цикл с использованием r
предназначен для строк. Цикл с использованием c
предназначен для столбцов. Есть 7 столбцов, которые являются или звездами или пробелами. В первом ряду они все звезды. Во втором ряду столбец 3 - это пробел (имейте в виду, что мы нумеруем). Это достигается за счет того, что во второй строке r
равно 1. Следовательно, условие if
равно if (c>3-1 && c<3+1)
или if (c>2 && c<4)
- поэтому, когда c
равно 3, будет напечатан пробел. Для других столбцов напечатана звезда. В следующем ряду он заканчивается как if (c>1 && c<5)
- поэтому, если c равно 2, 3 или 4, печатаются пробелы.
Попробуйте поиграться с программой, изменить числа, изменить напечатанное, чтобы лучше понять, что она делает.
#include <stdio.h>
int main(void)
{
int r,c;
for (r=0; r!=4; r++)
{
for (c=0; c<7; c++)
{
if (c>3-r && c<3+r)
printf(" ");
else
printf("* ");
}
printf("\n");
}
return 0;
}