C语言输出都是0.000000

#include<stdio.h>
int main()
{
double x,s1,s2,y,a,z;
int i=1,j;
a=1;
s1=0;
scanf("%jf",&x);
z=x;
if(fabs(s1-s2)*1000000>1)
{
s2=s1;
for(j=i-1;j>0;j--)
z=z*x;
for(j=i;j>0;j--)
a=a*j;
if(((i+1)%2)!=0)
s1=s1+z/a;
else
s1=s1-z/a;
i=i+2;
}
printf("s(x)=%.6lf",s2);
}

#include<stdio.h>
int main()

{

double x,s1,s2,a,z;
int i=1,j,y;
a=1;
s1=0;
scanf("%Lf",&x);/////
z=x;

s2=x;//s2 要初始化

y=1;
while(fabs(s1-s2)*1000000>1)///要用while 循环控制精度,

{

s2=s1;

for(j=i-1;j>0;j--)

z=z*x;

for(j=i;j>0;j--)

a=a*j;

if((y+1)%2==0)//判断有问题,借用 y

s1=s1+z/a;

else

s1=s1-z/a;

i=i+2;
a=1;//重置初值
z=x;//重置初值
y++;

}

printf("s(x)=%.6lf",s1);

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-04-17
#include <stdio.h>
#include <math.h>
int main()
{
    double x,s1,s2,t;
    long long i=1,s;
    scanf("%lf",&x);
    s2=t=x;
    do 
    {
        s1=s2;
        s=(i+1)*(i+2);
        t=(-1)*t*(x*x/s);
        s2+=t;
        i+=2;
    }
    while(fabs(s2-s1)>=10E-6);
    printf("s(x)=%lf\n",s2);    
}

第2个回答  2014-04-16
scanf("%lf",&x);

c语言代码输出为0.000000
在C语言中,可以通过浮点数的运算和格式化输出,得到结果为0.000000的输出。一、浮点数的运算 在C语言中,浮点数是用来表示小数的一种数据类型。为了得到输出结果为0.000000,首先需要进行涉及到浮点数运算的表达式计算。这个表达式的结果应该是一个非常接近零的浮点数。二、格式化输出 在C语言中,使用prin...

C语言为什么总是显示0.00000?
程序中的第五行循环条件写错了,正确的循环条件应该是s<=100;因,所以导致1次循环也没有执行,所以就输出显示0.000000了。

c语言为什么输出始终为0.000000
c语言为什么输出始终为0.000000 森谂i 2018-11-21 C语言编程语言 |举报 答题抽奖 首次认真答题后 即可获得3次抽奖机会,100%中奖。 更多问题 可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。 c语言 搜索资料 本地图片 图片链接 代码 提交回答正在求助 查看更多问题 > 换...

C语言的结果为什么永远是0.00000,应该怎么改?挺急的。明天就要了!_百 ...
错误1:你的n是整数,所以输入的时候要用scanf("%d",&n);而不是%lf,后者是用来读入double的 错误2:a=1\/i这里有点问题,在C里两个整数相除的结果还是整除,如果你要取得小数,可以改为比如a=1.0\/i;错误3:你的sum是一个小数,所以你的proc定义就要改为float proc(int n)建议改为double p...

c语言,我运行后结果怎么会是0.000000
把1\/2放到(a+b)的后面就对了,或者把1\/2改成1.0\/2或者1\/2.0或者1.0\/2.0 因为1\/2作为两个整形运算,结果也是整形变成0,再*(a+b)结果就是0.000000

c语言问题,最高分输出是 0.000000
你函数里一定会循环到二维数组的最后一个数,也就是i一定是2,j一定是5,所以你输出的最大数一定是m[2][5],但是这个已经数组越界了!所以值为0或者不确定(是编译器而定)。所以无论你输什么数,结果都是零。后面两个数一定是2,5。可以将函数改为由返回值的,将最大值返回就行了。include ...

c语言,我运行后结果怎么会是0.000000
因为1\/2=0,编译系统把它们当成int型进行计算,可以修改为:1.0\/2、1\/2.0、1.0\/2.0、(float)1\/2...都行,这样就可以得到正确结果了。祝学习愉快!

C语言问题求解!为什么答案等于0.000000
include<stdio.h>void main(){ int x,y;int z;x=2;y=10;z=x\/y;\/\/因为z是整数,2\/10=0.2 把0.2给z,小数部分会被舍弃,所以z=0printf("%f",z);\/\/将z已小数形式输出,由于z为0,最终输出结果为0.000000}\/\/望采纳!

c语言为什么输出为0.000000?
scanf("%lf,%lf",&x,&y);double类型对应scanf格式说明符%lf

C语言中为什么结果总是0.000000?
因为你用了浮点型,小数位数默认是六个

相似回答