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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2012, 14:01   #1
Alexandr_Snorlax
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 12
По умолчанию ошибка (рекурсия Си++)

Задание:
n
Σ((2^k)/k!)
k=1
Код:
long fact (int k)
{
	if (k<0) return 0;
	if (k=0) return 1;
	return k*fact(k-1);
}

int expo (int k)
{
	if (k=0) return 1;
	if (k>0) return 2*expo(k-1);
	if (k<0) return expo(k+1)/2;
}
int _tmain(int argc, _TCHAR* argv[])
{
	int n,k;
	float s=0;
	printf ("n=");
	scanf ("%d",&n);
	for (k=1;k<=n;k++)
	{s+=expo(k)/fact(k);}
printf ("s=%f",s);
getch();
}
Прога запускаеться, но после ввода n выдаёт ошибку. Подскажите пожалуйста в чем ошибка.
Alexandr_Snorlax вне форума Ответить с цитированием
Старый 03.03.2012, 14:17   #2
AlexDark
Форумчанин
 
Аватар для AlexDark
 
Регистрация: 23.12.2011
Сообщений: 117
По умолчанию

В обеих функциях поправить

if (k == 0) return 1;
AlexDark вне форума Ответить с цитированием
Старый 03.03.2012, 14:27   #3
Alexandr_Snorlax
Пользователь
 
Регистрация: 23.12.2011
Сообщений: 12
По умолчанию

Хех глупая ошибка, спасибо помогло. Вот только считает почему то неверно(
Alexandr_Snorlax вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ Рекурсия Dmitry_Web Помощь студентам 5 04.02.2012 00:55
Рекурсия и неизвестная ошибка rus_phantom Общие вопросы C/C++ 3 14.10.2011 23:01
рекурсия Limonade Помощь студентам 2 21.06.2011 15:58
Рекурсия СИ makc101 Помощь студентам 2 05.04.2011 23:13
рекурсия cherry097 Помощь студентам 1 02.04.2011 14:44