Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2012, 17:41   #1
Logannn
Пользователь
 
Регистрация: 15.10.2012
Сообщений: 16
По умолчанию Цикл While

Подскажите как с цикла for переделать на цикл while.



Код:
#include <stdio.h>

int main()
{
int num, i;                  // num -- chislo
int umnozhenie = 1;          // faktorial ot 0! = 1
int umnozhenie1 = 1;
int k;

printf ("Vvodim celoe chislo: ");
scanf ("%d" , &num );

for ( i=1; i<=num; i++ )
{
umnozhenie = umnozhenie*i;
}

for ( k=1; k<num; k++)
{
umnozhenie1 = umnozhenie1*k;
}

if (umnozhenie/num==umnozhenie1)

printf (" Faktorial chisla : %d\n", umnozhenie);

else

printf("Faktorial dlja %d nelzja tochno poschitatj\n", k);

}

Последний раз редактировалось Logannn; 26.11.2012 в 19:18.
Logannn вне форума Ответить с цитированием
Старый 26.11.2012, 17:44   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Код:
#include <stdio.h>

 int main()
 {
 int num, i; // num -- chislo
 int umnozhenie = 1; // faktorial ot 0! = 1
 int umnozhenie1 = 1;
 int k;

 printf ("Vvodim celoe chislo: ");
 scanf ("%d" , &num );

 i=1;
 while ( i<=num)
 {
 umnozhenie = umnozhenie*i;
 i++;
 }

 k=1;
 while ( k<num)
 {
 umnozhenie1 = umnozhenie1*k;
 k++;
 }

 if (umnozhenie/num==umnozhenie1)

 printf (" Faktorial chisla : %d\n", umnozhenie);

 else

 printf("Faktorial dlja %d nelzja tochno poschitatj\n", k);

 }
pu4koff вне форума Ответить с цитированием
Старый 26.11.2012, 17:48   #3
masax
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 248
По умолчанию

если число у тебя больше 34 выдает факториал 0
Код:
#include <stdio.h>

int main()
{
int num, i = 1, k = 1; // num -- chislo
int umnozhenie = 1; // faktorial ot 0! = 1
int umnozhenie1 = 1;

printf ("Vvodim celoe chislo: ");
scanf ("%d" , &num );

while (i<=num)
   umnozhenie = umnozhenie*i++;

while (k < num)
   umnozhenie1 = umnozhenie1*k++;

if (num < 34 && umnozhenie / num == umnozhenie1)
   printf (" Faktorial chisla : %d\n", umnozhenie);
else
   printf("Faktorial dlja %d nelzja tochno poschitatj\n", k);
}
Контакты
skype, почта: bm@kwax.ru

Последний раз редактировалось masax; 26.11.2012 в 17:52.
masax вне форума Ответить с цитированием
Старый 26.11.2012, 19:16   #4
Logannn
Пользователь
 
Регистрация: 15.10.2012
Сообщений: 16
По умолчанию

Спасибо! Все идеально!

Последний раз редактировалось Logannn; 26.11.2012 в 19:24.
Logannn вне форума Ответить с цитированием
Старый 26.11.2012, 21:37   #5
Blind Guard
Форумчанин
 
Регистрация: 14.03.2012
Сообщений: 139
По умолчанию

Код:
 i=1;
 while ( i<=num,i++)
 { umnozhenie = umnozhenie*i; }
На всякий случай
Blind Guard вне форума Ответить с цитированием
Старый 26.11.2012, 22:17   #6
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Цитата:
Сообщение от Blind Guard Посмотреть сообщение
Код:
 i=1;
 while ( i<=num,i++)
 { umnozhenie = umnozhenie*i; }
На всякий случай
В теле умножится не на тот i
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цикл nagabara Паскаль, Turbo Pascal, PascalABC.NET 1 26.06.2011 12:13
Цикл по времени - Как сделать так чтобы цикл выполнялся к примеру 10 секунд ? Anarki Общие вопросы C/C++ 3 13.11.2009 19:23
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34