elegie 发表于 2019-5-20 08:35:57

求助~求大神们纠错

本帖最后由 elegie 于 2019-5-20 08:38 编辑

#include<stdio.h>
#include<math.h>
int main()
{
        int f(int m, float x);
        int n;
        float x;
        scanf("%d %f", &n, &x);
        printf("%.3f", f(n, x));
        system("pause");
        return 0;
}
int f(int m, float x)
{
        float c;
        if (m == 1)c = sqrt(1 + x);
        else c = sqrt(f(m*1.0 - 1, x) + m * 1.0);
        return(c);
}

mqcake 发表于 2019-5-20 09:14:08

一个很明显的错误就是你的f函数,返回值是int的!

TOP_LK 发表于 2019-5-20 13:32:40

报什么错

elegie 发表于 2019-5-20 16:32:26

TOP_LK 发表于 2019-5-20 13:32
报什么错

输出答案一直是0.000

Croper 发表于 2019-5-20 16:55:06

#include<stdio.h>
#include<math.h>

double f(int n, double x)
{
        int i;
        for (i=1;i<=n;++i){
                x=sqrt(i+x);
        }
        return x;
}

int main(){
        int T;

        scanf("%d",&T);
        int i,n;
        double x,ret;
        for (i=0;i<T;++i){
                scanf("%d %lf",&n,&x);
                ret=f(n,x);
        }
       
        for (i=0;i<T;++i){
                printf("%.3f\n",ret);
        }
}

HUMMER军 发表于 2019-5-20 18:52:27

#include<stdio.h>
#include<math.h>
double fun(int n,double x);
int main()
{
int T,n;
double x;
printf("please input T:");
scanf("%d",&T);
double result;
printf("please input data of each row:\n");
for(int i=1;i<=T;i++)
{
    scanf("%d %lf",&n,&x);
    result=fun(n,x);
}
printf("the result is:\n");
for(int i=0;i<T;i++)
{
    printf("%.3lf\n",result);
}
return 0;
}

double fun(int n,double x)
{
double result=sqrt(1+x);
for(int i=2;i<=n;i++)
{
    result=sqrt(i+result);
   
}
return result;
}
页: [1]
查看完整版本: 求助~求大神们纠错