millerperez 2023-05-26 17:07 采纳率: 92.9%
浏览 30
已结题

dowhile循环跳出的情况异常

img

img


为什么我左边的查看列表里的“single_value”是0.43还符合28行的while条件,调试时却跳出了这个do while循环?谢谢各位了。
以下是代码:


#include<stdio.h>
#include<math.h>
double x_pow(double x,int n){
    int i,x_pow = 1;
    for(i = 1;i <= n;i++){
        x_pow *= x;
    }
    return x_pow;
}
int fact(int n){
    int sum = 1,i;
    if(n == 0||n == 1) return 1;
    for(i = 1;i <= n;i++){
        sum *= i;
    }
    return sum;
}
void x_sin(double x){
    int sign = 1,k = 1,count = 0;
    double sin = 0;
    double single_value = 0;
    do{ 
        single_value = x_pow(x,k)/fact(k);
        sin += sign*single_value;
        k += 2;
        sign *= -1;
        count++;
    }while(abs(single_value) >= 0.00001);
43    printf("%.3lf\n%d",sin,count);
}
int main(){
    double x;
    scanf("%lf",&x);
    x_sin(x);
    return 0;
}
  • 写回答

3条回答 默认 最新

  • 於黾 2023-05-26 17:23
    关注

    abs返回值类型是int
    改为fabs

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 已采纳回答 5月26日
  • 创建了问题 5月26日

悬赏问题

  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?
  • ¥15 Arduino的wifi连接,如何关闭低功耗模式?
  • ¥15 Android studio 无法定位adb是什么问题?
  • ¥15 C#连接不上服务器,