Язык Си, изучаю самостоятельно, фактически с нуля. Сделала программу, которая работает именно так, к - Компьютерные вопросы
  • Чаты 4chT.com в телеграмм
    Наши группы в телеграмм

Вопрос Язык Си, изучаю самостоятельно, фактически с нуля. Сделала программу, которая работает именно так, к

Регистрация
8 Окт 2013
Сообщения
76
Репутация
7
Спасибо
0
Монет
0
Вот листинг. Число вводить нужно от 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;
}

Пожалуйста, покритикуйте логику.
Нормально ли я сделала, с точки зрения логики, или можно было меньшим количеством циклов обойтись?
Иду строго по учебнику, кроме переменных и циклов ничего еще не было - ни функций, не массивом, да и меня больше логика беспокоит, чем реализация.
Любая критика очень приветствуется!
спасибо!!!!
 
Регистрация
12 Сен 2013
Сообщения
70
Репутация
0
Спасибо
0
Монет
0
int i,j 1-а где их значения? 2-printf(" ");или тп зачем тебе результат самому непонятный 3-for(j=0;j<i+1;j++) printf(" "); извини глупее цикла не бывает!
 
Регистрация
7 Мар 2013
Сообщения
82
Репутация
0
Спасибо
0
Монет
0
Не знаю что делает программа, но циклы однозначно можно объединить Самое простое: 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 циклов
 
Регистрация
31 Июл 2013
Сообщения
86
Репутация
0
Спасибо
0
Монет
0
а что требовалось? В любом алгоритме должно быть минимум константных выражений. пример j<5 число 5 ни о чем не говорит, а вот переменная может в дальнейшем измениться. по этому то у вас циклов немерено
 
Регистрация
7 Июл 2013
Сообщения
79
Репутация
0
Спасибо
0
Монет
0
Замечательно, что ровно так, как хотели. Но условие задачи (что хотели) совсем-бы не помешало.... Логика - линейный алгоритм. Можно было-бы сделать функции/процедуры вместо повторяющихся участков.
 
Сверху Снизу