Вот листинг. Число вводить нужно от 5 до 15, чтоб стало очевидно, что программа делает.
#include
#include
int main(void)
{
int number;
int i,j;
printf("Enter number between 5 and 15
");
scanf("%d",&number);
for(i=0;i<number;i++)
{
for(j=0;j<i+1;j++)
printf("*");
for(j= 0;j<number-i;j++)
printf(" ");
for(j=0;j<5;j++)
printf(" ");
for(j=0;j<number-i;j++)
printf("*");
for(j=0;j<i+1;j++)
printf(" ");
for(j=0;j<5;j++)
printf(" ");
for(j=0;j<i+1;j++)
printf(" ");
for(j=0;j<number-i;j++)
printf("*");
for(j=0;j<5;j++)
printf(" ");
for(j=0;j<number-i;j++)
printf(" ");
for(j=0;j<i+1;j++)
printf("*");
printf("
");//
}
_getch();
return 0;
}
Пожалуйста, покритикуйте логику.
Нормально ли я сделала, с точки зрения логики, или можно было меньшим количеством циклов обойтись?
Иду строго по учебнику, кроме переменных и циклов ничего еще не было - ни функций, не массивом, да и меня больше логика беспокоит, чем реализация.
Любая критика очень приветствуется!
спасибо!!!!
int i,j 1-а где их значения? 2-printf(" ");или тп зачем тебе результат самому непонятный 3-for(j=0;j<i+1;j++) printf(" "); извини глупее цикла не бывает!
Не знаю что делает программа, но циклы однозначно можно объединить Самое простое: for(j= 0;j<number-i;j++) printf(" "); for(j=0;j<5;j++) printf(" "); объединяется в (тема в математике: сложение неравенств, школьная программа) for(j= 0;j<number-i+5;j++) printf(" "); А в идеале надо всё сокращать до 1-2 циклов
а что требовалось? В любом алгоритме должно быть минимум константных выражений. пример j<5 число 5 ни о чем не говорит, а вот переменная может в дальнейшем измениться. по этому то у вас циклов немерено
Замечательно, что ровно так, как хотели. Но условие задачи (что хотели) совсем-бы не помешало.... Логика - линейный алгоритм. Можно было-бы сделать функции/процедуры вместо повторяющихся участков.