当前位置: 代码迷 >> C语言 >> 求助
  详细解决方案

求助

热度:134   发布时间:2008-04-24 20:47:21.0
求助
#include<stdio.h>
double product(float x,int n);
double s(float x,int n);
double product(float x,int n)
{
    if(n==2)
        return(x);
    else
        return(product(x,n-1)*x);
}
double s(float x,int n)
{
    int i;
    double a=0,sum=0;
    for(i=1;i<=n;i++)
    {
        a=product(x,i)+a;
    sum=a+sum;
    }
    return sum;
}
void main()
{
    float x;
    int n;
    printf("输入你要求的平方和的底数和最高指数项的次数:\n");
    scanf("%f,%d",&x,&n);
    printf("%f\n",s(x,n));
}这个是求1到n的平方和,哪里出了问题?
----------------解决方案--------------------------------------------------------
在递归函数中没考虑n=1的情况,而在s()函数中却又有n=1的情况!~
----------------解决方案--------------------------------------------------------
s()中i应从2开始递增。并且你的输出显然不是1到n的平方和。
----------------解决方案--------------------------------------------------------
首先递归函数无法退出,其次问题表述也不清楚..
----------------解决方案--------------------------------------------------------
哦,我再看看
----------------解决方案--------------------------------------------------------
  相关解决方案