Язык Си, изучаю самостоятельно, фактически с нуля. Сделала программу, которая работает именно так, как я и хотела.
Учебная задача, программа просто выводит на консоль треугольники из звездочек.
Меня интересует, можно ли как-то уменьшить количество вложенных циклов?
Очень хочется сразу настраиваться на правильный стиль программирования.
Применять можно только циклы, функции нельзя.
Любая критика приветствуется! Вывод на консоль прикрепила к вопросу, спасибо!!!
Листинг
#include
#include
int main(void)
{
int number;
int i,j;
printf("How big triangles are?\n");
scanf("%d",&number);
for(i=0;i<number;i++)
{
for(j=0;j<i+1;j++)
printf("*");
for(j= 0;j<number+5-i;j++)
printf(" ");
for(j=0;j<number-i;j++)
printf("*");
for(j=0;j<2*i+7;j++)
printf(" ");
for(j=0;j<number-i;j++)
printf("*");
for(j=0;j<number-i+5;j++)
printf(" ");
for(j=0;j<i+1;j++)
printf("*");
printf("\n");//end of i iteratio
}
_getch();
return 0;
}

Если цель, уменьшить количество внутренних циклов, то можно сократить до
-внешний цикл по числу строк
--внутренний цикл по количеству символов в строке
---условие проверки (символ в позиции строка-столбец принадлежит одному из треугольников)
----вывод *
---иначе
----вывод ⊔
--вывод конца строки
"Очень хочется сразу настраиваться на правильный стиль программирования."
В "правильном" коде должно быть минимальное количество "магических" чисел. Конструкции типа 2*i+7 мало о чем говорят читающему код. Не увидев результата трудно предположить, что бы это значило. Как минимум такой параметр, как расстояние между треугольниками стоило бы как-то поименовать, константой, дефайном.
Молодец. Любую программку можно улучшать для достижения разных целей. Например, можно уменьшить количество вызовов printf, если выводить каждую строку целиком, предварительно подготовив её в буфере, --программка будет работать быстрее.
есть более оптимальные варианты
используй функции форматирования
setw - ширина или длина поля
setfill - символ заполнения
#include < iomanip.h >
int main()
{
setw( 10 ) << setfill( '*' ) ;
return 0;
}
http://memory.saraff.ru/page.php?pg=15