Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 10.10.2011, 12:10   #11 (permalink)
sypermot
Новичок
 
Регистрация: 10.10.2011
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

а с od while так

do{ s=1 i++
s=*(a-i)
} while i<=b;
printf("\n otvet: %d",s);}
sypermot вне форума   Ответить с цитированием

Старый 10.10.2011, 12:10
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

С уверенностью могу сказать, что в этих темах есть множество полезной информации

Помогите с программой
Помогите, пожалуйста, с программой
Помогите с программой на Си
Помогите, пожалуйста, с программой
Помогите с программой
Помогите с программой

Старый 10.10.2011, 12:11   #12 (permalink)
Fenix
404
 
Аватар для Fenix
 
Регистрация: 10.01.2010
Сообщений: 1,749
Записей в дневнике: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3868
По умолчанию

Не совсем...

Код:
s=1;
i=1;
while (i<=b)
{
 s*=(a-i);
 i++;
}

printf("\n otvet: %d",s);
Переменной i надо присвоить значение 1 еще до начала цикла. Иначе i почитается из той ячейки памяти, где ее расположит программа, а там может храниться черт знает что.
Дальше... Следите за тем, чтобы переменная если объявлена маленькой буквой, то везде она писалась маленькой буквой (C чевствителен к регистру.
i увеличивать на один надо после ее использования, а не до.
Вывод ответа нужно вынести из цикла, иначе он будет выводиться с каждым шагом цикла.
Ну и на конец "*=", а не "=*"
Fenix вне форума   Ответить с цитированием
Старый 10.10.2011, 12:12   #13 (permalink)
sypermot
Новичок
 
Регистрация: 10.10.2011
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

понял=) спасибо=) вообще выручил
sypermot вне форума   Ответить с цитированием
Старый 10.10.2011, 12:20   #14 (permalink)
Fenix
404
 
Аватар для Fenix
 
Регистрация: 10.01.2010
Сообщений: 1,749
Записей в дневнике: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3868
По умолчанию

do while будет так:
Код:
s=1;
i=1;
do
{
 s*=(a-i);
 i++;
}
while (i<=b);
Первоначальные значения переменных надо объявлять до цикла или же при их объявлении:
Код:
int s=1, i=1;
Fenix вне форума   Ответить с цитированием
Старый 10.10.2011, 12:26   #15 (permalink)
sypermot
Новичок
 
Регистрация: 10.10.2011
Сообщений: 11
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

и еще раз спасибо=)
sypermot вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 07:02.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.