gpt4 book ai didi

Code::Blocks 13.12 错误 - 程序已停止工作

转载 作者:行者123 更新时间:2023-11-30 15:19:37 25 4
gpt4 key购买 nike

我正在使用代码块 13.12。我为以下问题编写了一个程序:-

以 0.0001% 的精度评估函数。Sinx = x - (x^3/3!) + (x^5/5!) - .....

输入x的值后出现错误。它说“AccuracyOfSinx.exe 已停止工作”。

#include<stdio.h>
#include<conio.h>

#define ACCURACY 0.000001
int main()
{
int n, num, mulx, fac, rem;
float x,term, sum;

printf("Enter x = ");
scanf("%f", &x);
num=1;
sum=0;
mulx=1;
for(n=1, term=1; term>ACCURACY ; n++)
{
fac=num;
do
{
num=num-1;
fac=fac*num; /*Finds the factorial*/
mulx=mulx*x; /*Computes x raised to num*/
}
while(fac>0);
term = 1/fac;
num=num+2;
rem=n%2;
if(rem==0) /* -ve sign is given to even position*/
sum = sum-(mulx/fac);
if(rem!=0) /* +ve sign is given to odd position*/
sum = sum+(mulx/fac);
mulx = x;
}
printf("Sin(x)=%f", sum);
}

最佳答案

主要问题在于:

 term = 1/fac;

这是除以零的情况。我在这条语句之前打印了 fac 的值,并且在accuracy.exe停止工作之前它打印了0

fac转到0的主要原因是

 num=num-1;
fac=fac*num;

为防止出现这种情况,请在使用 num 的值计算 fac 之前添加一个 if 条件来检查它。

关于Code::Blocks 13.12 错误 - 程序已停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30559255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com