风过无痕1989 发表于 2020-7-18 01:43:52

请教:调用函数为什么没有输出?

// 求给定数的平方根

# include<stdio.h>

int main()
{
          float sqrt_02(float x,float y);               // 声明 sqrt_02 函数,求 x 的平方根,精度为 y
          float x = 0,y = 0;
          double z = 0;
          double result;
          scanf("%f,%f",&x,&y);
          result = sqrt_02(x,y);
          printf("%f 的平方根为:%04lf\n",x,result);
}


float sqrt_02(float x,float y)
{
         float m = 1;
          double p = 0;
          double q = 0;
          double result = 0;
          double s = 0;
          while (m * m < x)                                 // 从自然数逼近
          {
                p = m;
                m++;
          }
          while ((p + 0.5) * (p + 0.5) < x)         // 从小数的十位逼近
          {
                p = p + 0.5;
                q = p;
          }
          while ((q + 0.05) * (q + 0.05) < x)       // 从小数的百位逼近
          {
                  q = q + 0.05;
                  s = q;
          }
          while ((s + y) * (s + y) < x)               // 从要求的精度位逼近
          {
                  s = s + y;
          }
              result = s;
           return 0;
}


          此程序编译没有问题,返回却是0,请问,我该如何修改?谢谢!

SHRS23 发表于 2020-7-18 02:52:59

本帖最后由 SHRS23 于 2020-7-18 03:03 编辑

sqrt_02函数中 最后应该 ruturn result; 吧

测试了一下,改过之后可以输出

zltzlt 发表于 2020-7-18 07:44:41

将 return 0; 改为 return result

#include <stdio.h>

int main()
{
    float sqrt_02(float x, float y); // 声明 sqrt_02 函数,求 x 的平方根,精度为 y
    float x = 0, y = 0;
    double z = 0;
    double result;
    scanf("%f,%f", &x, &y);
    result = sqrt_02(x, y);
    printf("%f 的平方根为:%04lf\n", x, result);
}

float sqrt_02(float x, float y)
{
    float m = 1;
    double p = 0;
    double q = 0;
    double result = 0;
    double s = 0;
    while (m * m < x) // 从自然数逼近
    {
      p = m;
      m++;
    }
    while ((p + 0.5) * (p + 0.5) < x) // 从小数的十位逼近
    {
      p = p + 0.5;
      q = p;
    }
    while ((q + 0.05) * (q + 0.05) < x) // 从小数的百位逼近
    {
      q = q + 0.05;
      s = q;
    }
    while ((s + y) * (s + y) < x) // 从要求的精度位逼近
    {
      s = s + y;
    }
    result = s;
    return result;
}

风过无痕1989 发表于 2020-7-18 09:08:28

SHRS23 发表于 2020-7-18 02:52
sqrt_02函数中 最后应该 ruturn result; 吧

测试了一下,改过之后可以输出

谢谢! 我一开始也是 return result ,没有输出才瞎改的。刚才改回 return result ,输出正常了。楼下的朋友答案详细一些,最佳答案给他了,再次谢谢你!

风过无痕1989 发表于 2020-7-18 09:09:05

zltzlt 发表于 2020-7-18 07:44
将 return 0; 改为 return result

我一开始也是 return result ,没有输出才瞎改的。刚才改回 return result ,输出正常了。
页: [1]
查看完整版本: 请教:调用函数为什么没有输出?