C语言编程找错误:计算 sin(x)=x - x3/3! + x5/5! - x7/7! + ……直到最后一项的绝对值小于10-6。

作者&投稿:山菊 (若有异议请与网页底部的电邮联系)
找错误:计算 sin(x)=x - x3/3! + x5/5! - x7/7! + ……直到最后一项的绝对值小于10-7。~

========================================================
b=-b;
b=x/n; //b的符号并没有变
b=b*x*x/(n+1)/(n+2); //阶乘计算的不对哦,n一直都没变
========================================================
我重写一下代码仅供参考
float x,result,tmp;
int n=1,t=1;
do
{
tmp=x*t/n;
x=-x;
t+=2;
n*=(n++)(n++);
result += tmp;
}
while(tmp>1e-7);
printf("result=%10.6f
",result);
getch();

C代码:
#include
#include//fabs()
int main()
{ double x,s,a;//为了提高精度,我把它们定义成双精度的。
int i;
scanf("%lf",&x);//注意x为弧度,输入的值过大没意义只要在-2*∏~2*∏即可。因为C语言的运算精确度有限。例如输入1.7,输出0.99166465
a=x;
s=a;
for(i=1;;i+=2)
{
a*=x*x*(-1)/((i+1)*(i+2));
if(fabs(a)<1e-7) break;
s+=a;
}
printf("%.8f
",s);
return 0;
} //用泰勒展开式求sinx
C++代码:
#include
#include//fabs()
#include//setprecision()
using namespace std;
int main()
{ double x,s,a;//为了提高精度,我把它们定义成双精度的。
int i;
cin>>x;//注意x为弧度,输入的值过大没意义只要在-2*∏~2*∏即可。因为C语言的运算精确度有限。例如输入1.7,输出0.99166465
a=x;
s=a;
for(i=1;;i+=2)
{
a*=x*x*(-1)/((i+1)*(i+2));
if(fabs(a)<1e-7) break;
s+=a;
}
cout<<setprecision(8)<<s<<endl;
return 0;
} //用泰勒展开式求sinx

s=1;
少了变量s的初始化。

没有死循环吧,我把你上面的代码编译了下,没死循环。

写法都难看啊,给题目看看啊,DO WHILE 可以不用的

a=x和a=a*x*x;是什么意思啊?s也没有定义

s=1,再试试呢?

啊哦


跪求!c语言编程问题!要交作业了!
程序有若干错误,请先阅读程序,找出其中的错误行, 并写出出错的原因,最后上机调试该程序验证自己的预测。#1 double aver(int a[], int n, int *p) \/\/ p所谓返回的参数之一,应该使用二级指针,或者指针的引用;#2 { int i,sum=0 ; \/\/ 这里的*p指向了函数内部的临时变量,且该变量在函数结束时, \/\/ 会...

C语言编程问题
B*B)-4*A*C-B);rdp*=rdp;rdp*=rdp;RetValus=rdp;return RetValus;} \/\/程序里面出现的都是一些小错误,被调函数在使用之前要声明,变量在使用之前要定义,还有些就是c本身系统函数调用的方法有错。以上是完全正确的程序,你可以在你的编译器里试一下。希望你的毕业设计可以取得满意的成绩。

C语言编程问题?
如果按你的输出样例,那么12.5里9分钟对应的应该是10+7×2+2×3+2×2 意思就是公里数要舍去小数点来进行计算,而时间要分成两种情况来算,第一种不满5分钟0元,大于等于5分钟是按封顶来算的,因为这里9分钟是算了2个2元钱,也就是只要开始算钱不满5分钟也要算2块钱 因此你在计算mail(其实...

C语言编程问题 成绩统计
Open "C:\\score2007.txt" For Input As #1 Dim linetxt As String Dim c90, c80, c70, c60, c0 As Integer Do While Not EOF(1)Line Input #1, linetxt If Len(Trim(linetxt)) > 0 Then tmpArr = Split(linetxt, " ")Select Case CDbl(tmpArr(1))Case Is >= 90 c90 = c90 ...

易语言编程编辑一个简单的阶乘运算,没法输出最终值,求大神帮忙看下哪...
应该是 i =int(编辑框4.内容)

汇编语言程序输出的一直是乱码,求高手找错
楼主的程序,可以输入150个字符,却只留了50个字符的空间!另外,输入的是一个一个的字节,排序的时候却用““字””来排序,逻辑上有错。最后,显示字符串,其末尾,应该有"$",否则就要显示出乱码。以前写过,现成的,可供参考:;=== assume cs:code, ds:data data segment msg1 db ...

c语言未经处理的异常,求大佬指点
您好,很高兴回答您的问题。您的这个题目,系统已经很明显告诉您了错误的原因。因为您定义的x为字符型数据,那么它对应的输入输出格式符为%c,但是您在输入语句中写的是%s,是字符串格式,不符合字符型单个变量的输入输出。根据题目意思,应该是要输入字符串,那么定义的时候就要写成char x[2],因为存放的...

c语言编程中 报错"stray '\\161'in progtam" 是什么意思
如果VC编译器出现如此错误提示"stray '\\161'in progtam",说明你用了全角符号的空格。 直接从网上拷贝代码贴到Dev C++中会经常遇到 stray '\\161' in program 错误,其实问题出在代码中掺入了一些不合法的空格(全角空格),把每行代码后的空格删掉即OK了! C语言错误对照表: 1. Ambiguous operators need parenthese...

一个C语言编程,分段计数,但是临界值总出现问题,求大神指点一二啊,急...
注意浮点数会有精度问题,也就是说1.8在内存中可能是1.799999,所以会出现判断出错,如果你在运算过程中做过浮点转整数或是整数转浮点就会出现.

c语言编程时出现文件停止工作是怎么回事
Runtime Error,最常见的是犯了除0错误,或是访问非法内存。

管城回族区13485641760: C语言编程找错误:计算 sin(x)=x - x3/3! + x5/5! - x7/7! + ……直到最后一项的绝对值小于10 - 6. -
字放蛇胆: s=1; 少了变量s的初始化. 没有死循环吧,我把你上面的代码编译了下,没死循环.

管城回族区13485641760: 用C语言程序算sinX的值 -
字放蛇胆: #include /*计算n的阶乘*/ int factor(int n) {if(n==1)return 1;elsereturn factor(n-1)*n; } /*得到分子的值*/ double get_numerator(double x,int order) {return pow(x,order); //求x^order } /*得到分母的值*/ double get_denominator(int n) {return factor(n...

管城回族区13485641760: 计算sinx的值,c语言编程问题 -
字放蛇胆: #include <iostream>#include <math.h>#include <conio.h> int fact(int n) { if(n == 0) return 1; return n * fact(n - 1); } double mysin(double x) { const double PRECISION = 100.; double sum = x, preTerm = x; for(int i = 1;; i++) { double currentTerm = (i % 2 ...

管城回族区13485641760: c语言计算sin(x)值的程序...泪奔跪求各位高手如下程序哪里出错了!! -
字放蛇胆: 对你的程序作了3个修改:#include<math.h>#include<stdio.h> long int extra(int b) { long int m,g; /* 修改第1处:g为阶乘值,至少应该是long int型,否则会溢出 */ for(m=1,g=1;m<=b;m++) g=g*m; return (g); } int main() { double sum,x,q; long int ...

管城回族区13485641760: c语言计算sinx的值问题,运行无错但得不到想要的结果.求解 -
字放蛇胆: /*sin(x)的泰勒展开式 sin(x)=x-x**3/(3!)+x**5/(5!)+........ */ #include <stdio.h> #include <math.h> #define PI 3.1415926 void main() {int n=1,c=1,a,b=1;long double x,d=0,sinx=0;//这里定义长双精度,long float不是标准的数据类型printf("请输入x...

管城回族区13485641760: C语言初学者请教!编程求sinx近似值,已写程序,求改错! -
字放蛇胆: #include<stdio.h> /*以下代码运行通过*/ #include<math.h> main() { float sum,sinx,x,s; int i,j; /*j为-1的次方变量*/ printf("Please inter x: \n"); scanf("%f",&x); i=1;s=1;j=-1; sum=0; sinx=sin(x); printf("%f\n",sinx); for(i=1;(fabs(sum-sinx))>=0....

管城回族区13485641760: c语言 求泰勒级数y=sin(x) -
字放蛇胆: 1、输入问题scanf 2、函数abs()的使用错误 int abs(int);这是原型,所以abs(0.5)的值是0,while循环不执行.改成fabs()即可 3、while循环里,k的值 #include <stdio.h> #include <math.h> void main() {double y=0,x;int n=1,k,p = 1;scanf("...

管城回族区13485641760: c语言 计算sin -
字放蛇胆: sin函数写错了,应该是: double sin...... { if... return 0; else { ... ... return sin(x,xx); } } 不要后面那个return z了

管城回族区13485641760: c语言求sinx的值 以下是该程序,请问错误在哪里? -
字放蛇胆: #include int main() { double x; printf("Please Input the number of double x:\n"); scanf("%lf",&x);printf("%lf\n",sin(x)); if (x>0) { printf("%lf\n",log10(x)); } else printf("error"); return 0; }

管城回族区13485641760: c语言编程sinx -
字放蛇胆: 1 2while(fabs(y)>=1e-6)//去掉分号 printf("sinx的近似值为%lf,sinx的真实值为%lf",sum,sin(x));//是lf

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网