鱼C论坛

 找回密码
 立即注册
查看: 1191|回复: 4

[已解决]请教:调用函数为什么没有输出?

[复制链接]
发表于 2020-7-18 01:43:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
// 求给定数的平方根

# 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,请问,我该如何修改?谢谢!

最佳答案
2020-7-18 07:44:41
将 return 0; 改为 return result

  1. #include <stdio.h>

  2. int main()
  3. {
  4.     float sqrt_02(float x, float y); // 声明 sqrt_02 函数,求 x 的平方根,精度为 y
  5.     float x = 0, y = 0;
  6.     double z = 0;
  7.     double result;
  8.     scanf("%f,%f", &x, &y);
  9.     result = sqrt_02(x, y);
  10.     printf("%f 的平方根为:%04lf\n", x, result);
  11. }

  12. float sqrt_02(float x, float y)
  13. {
  14.     float m = 1;
  15.     double p = 0;
  16.     double q = 0;
  17.     double result = 0;
  18.     double s = 0;
  19.     while (m * m < x) // 从自然数逼近
  20.     {
  21.         p = m;
  22.         m++;
  23.     }
  24.     while ((p + 0.5) * (p + 0.5) < x) // 从小数的十位逼近
  25.     {
  26.         p = p + 0.5;
  27.         q = p;
  28.     }
  29.     while ((q + 0.05) * (q + 0.05) < x) // 从小数的百位逼近
  30.     {
  31.         q = q + 0.05;
  32.         s = q;
  33.     }
  34.     while ((s + y) * (s + y) < x) // 从要求的精度位逼近
  35.     {
  36.         s = s + y;
  37.     }
  38.     result = s;
  39.     return result;
  40. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-7-18 02:52:59 | 显示全部楼层
本帖最后由 SHRS23 于 2020-7-18 03:03 编辑

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

测试了一下,改过之后可以输出
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-7-18 07:44:41 | 显示全部楼层    本楼为最佳答案   
将 return 0; 改为 return result

  1. #include <stdio.h>

  2. int main()
  3. {
  4.     float sqrt_02(float x, float y); // 声明 sqrt_02 函数,求 x 的平方根,精度为 y
  5.     float x = 0, y = 0;
  6.     double z = 0;
  7.     double result;
  8.     scanf("%f,%f", &x, &y);
  9.     result = sqrt_02(x, y);
  10.     printf("%f 的平方根为:%04lf\n", x, result);
  11. }

  12. float sqrt_02(float x, float y)
  13. {
  14.     float m = 1;
  15.     double p = 0;
  16.     double q = 0;
  17.     double result = 0;
  18.     double s = 0;
  19.     while (m * m < x) // 从自然数逼近
  20.     {
  21.         p = m;
  22.         m++;
  23.     }
  24.     while ((p + 0.5) * (p + 0.5) < x) // 从小数的十位逼近
  25.     {
  26.         p = p + 0.5;
  27.         q = p;
  28.     }
  29.     while ((q + 0.05) * (q + 0.05) < x) // 从小数的百位逼近
  30.     {
  31.         q = q + 0.05;
  32.         s = q;
  33.     }
  34.     while ((s + y) * (s + y) < x) // 从要求的精度位逼近
  35.     {
  36.         s = s + y;
  37.     }
  38.     result = s;
  39.     return result;
  40. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-18 09:08:28 | 显示全部楼层
SHRS23 发表于 2020-7-18 02:52
sqrt_02函数中 最后应该 ruturn result; 吧

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

谢谢! 我一开始也是 return result ,没有输出才瞎改的。刚才改回 return result ,输出正常了。楼下的朋友答案详细一些,最佳答案给他了,再次谢谢你!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-18 09:09:05 | 显示全部楼层
zltzlt 发表于 2020-7-18 07:44
将 return 0; 改为 return result

我一开始也是 return result ,没有输出才瞎改的。刚才改回 return result ,输出正常了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-8-7 13:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表