首页 > 用户发贴区 > 编程问题提问区 > C语言 为什么以下函数 输出结果不同
2008
08-17

C语言 为什么以下函数 输出结果不同

#include “stdio.h”
#include “math.h”
main()
{
float y;
int x,n;
y=1;
while(y>=-1)
{

n=acos(y)*10;
for(x=0;x<n;x++)
printf(” “);
printf(“*”);
for(;x<62-n;x++)
printf(” “);
printf(“*%d %lf\n”,n,y);
y=y-0.1;
}

getchar();
}




#include “stdio.h”
#include “math.h”
main()
{
double y;
int x,n;
y=1;
while(y>=-1)
{

n=acos(y)*10;
for(x=0;x<n;x++)
printf(” “);
printf(“*”);
for(;x<62-n;x++)
printf(” “);
printf(“*%d %lf\n”,n,y);
y=y-0.1;
}

getchar();
}


C语言 为什么以下函数 输出结果不同》有 3 条评论

  1. 287056137 说:

    float 和 double 区别。。你该去看看书。。书上都有的

  2. cypress 说:

    第一个没最后一行,第二个有最后一行,

    书上只说double float 只决定精确度,

    怎么会出现一个多一行,一个少一行的情况?

  3. JohnWayne 说:

    我认为可能正是因为精度的问题  所以在y>=-1 的时候出现了差别    c的实型变量的小数只是近似  不是该数的确切值 

留下一个回复