各位c语言大侠们,小弟求问一题,我写的程序不对啊,递归部分错在哪里了呢?O(∩_∩)O谢谢大家了!

[复制链接]
查看11 | 回复1 | 2011-4-11 01:25:22 | 显示全部楼层 |阅读模式
输入一个正整数repeat (0repeat10),做repeat次下列运算:
输入一个整数n (n=0)和一个双精度浮点数x,输出函数p(n,x)的值(保留2位小数)。

[1
(n=0)

p(n, x) = [x
(n=1)

[((2*n-1)*p(n-1,x)-(n-1)*p(n-2,x))/n (n1)
例:括号内是说明
输入
3 (repeat=3)
00.9 (n=0,x=0.9)
1-9.8 (n=1,x=-9.8)
101.7 (n=10,x=1.7)
输出
p(0, 0.90)=1.00
p(1, -9.80)=-9.80
p(10, 1.70)=3.05*/


#include stdio.h
double p(int n, double x)
{
if(n==0)
return 0;
else
{
if(n==1)
return x;
else
return ((2*n-1)*p(n-1,x)-(n-1)*p(n-2,x))/n;
}
}

int main(void)
{
int repeat, ri;
int n;
double x, result;

scanf(\"%d\",
for(ri = 1; ri = repeat; ri)
{

scanf(\"%d%lf\",

result = p(n, x);

printf(\"p(%d, %.2lf)=%.2lf\\n\", n, x, result);
}
}
回复

使用道具 举报

千问 | 2011-4-11 01:25:22 | 显示全部楼层
<pre id=\"best-answer-content\" class=\"reply-text mb10\">#include stdio.h
double p(int n, double x)
{
if(n==0)
return 1;/*return 0*/
else
{
if(n==1)
return x;
else
return ((2*n-1)*p(n-1,x)-(n-1)*p(n-2,x))/n;
}
}

int main(void)
{
int repeat, ri;
int n;
double x, result;

scanf(\"%d\",
for(ri = 1; ri = repeat; ri)
{

scanf(\"%d%lf\",

result = p(n, x);

printf(\"p(%d, %.2lf)=%.2lf\\n\", n, x, result);
}
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行