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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2009, 18:18   #1
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
Печаль Си++. Рекурсивная функция.

Здравствуйте. Не могли бы вы помочь с такой задачей: написать рекурсивную функцию для возведения числа 3 в степень, равную некоторому другому числу. Например если передается аргумент 4, то функция возвращает 81.
Вот, что у меня вышло..
#include <stdio.h>
#include <stdlib.h>
float stepen (float a, int n);
int main()
{
int i;
float s,b;
long int f;
printf("vvedite b: ", b);
scanf("%d", &b);
printf("vvedite i: ", i);
scanf("%d", &i);
s=stepen (b,i);
printf(" s= ", s);
system ("PAUSE");
return 0;
}
float stepen (float a, int n)
{ if (n==0) return (1);
else
if (n<0) return (1/stepen (a,-n));
else return (a*stepen (a,n-1));
}
..но прога не работает..и вообще я очень запуталась..помогите пожалуйста((
Diamond2107 вне форума Ответить с цитированием
Старый 02.12.2009, 18:35   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

только числа 3? тогда почему у вас написано для общего случая? ) Я так понимаю, это не выделали?)
Ошибки вот в чём:
Код:
printf("Vvedite b: ", b); // Здесь запятую и b после строки не нужно пиать
scanf("%d", &b); // b у вас типа float, потому вместо %d нужно %f
printf("vvedite i: ", i); // аналогично первому
printf(" s= ", s); // Забыли поставить что именно выводим(float) printf("s = %f", s);
netrino вне форума Ответить с цитированием
Старый 02.12.2009, 18:47   #3
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

Да..я взяла из учебника фрагмент..и пыталась что-то понять. Хотя бы на общем примере. Я исправила..но все равно не работает..не понимаю что не так((
Diamond2107 вне форума Ответить с цитированием
Старый 02.12.2009, 19:32   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

у меня после этих исправлений работает... покажите как вы исправили
netrino вне форума Ответить с цитированием
Старый 02.12.2009, 19:38   #5
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

Вот...
#include <stdio.h>
#include <stdlib.h>
float stepen (float a, int n);
int main()
{
int i;
float s,b=3;
long int f;

printf("vvedite i ");
scanf("%f", &i);
s=stepen (b,i);
printf(" s= %f", s);
system ("PAUSE");
return 0;
}
float stepen (float a, int n)
{ if (n==0) return (1);
else
if (n<0) return (1/stepen (a,-n));
else return (a*stepen (a,n-1));
}
Diamond2107 вне форума Ответить с цитированием
Старый 02.12.2009, 19:42   #6
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Ааа)
%f в scanf и printf ставится для типа float, b у вас типа float, но i типа int, для коего как раз и нужно ставить %d
Код:
#include <stdio.h>
#include <stdlib.h>
float stepen (float a, int n);
int main()
{
int i;
float s,b=3;
long int f;

printf("vvedite i ");
scanf("%d", &i);
s=stepen (b,i);
printf(" s= %f", s);
system ("PAUSE");
return 0;
}
float stepen (float a, int n)
{ if (n==0) return (1);
else
if (n<0) return (1/stepen (a,-n));
else return (a*stepen (a,n-1));
}
netrino вне форума Ответить с цитированием
Старый 02.12.2009, 19:48   #7
Diamond2107
Пользователь
 
Регистрация: 22.03.2009
Сообщений: 76
По умолчанию

Блин..ну и тупые у мя ошибки..называется поспешишь..и вот((..спасибо Вам большое))
Diamond2107 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функция Cpluser Общие вопросы C/C++ 2 28.02.2009 23:08
Задача (рекурсивная) Witaliy Паскаль, Turbo Pascal, PascalABC.NET 2 21.01.2009 06:18
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50