当前位置: 代码迷 >> C语言 >> [求助]这个程序有问题小数位上的数在哪儿去了
  详细解决方案

[求助]这个程序有问题小数位上的数在哪儿去了

热度:142   发布时间:2007-04-23 22:41:40.0
[求助]这个程序有问题小数位上的数在哪儿去了

以下程序运行输入45.6 39.2 得出的max为45.00000 还有的小数位数在哪儿去了?

#include<stdio.h>
int max(float x,float y);
main()
{
float a,b,c;
scanf("%f%f,",&a,&b);
printf("a=%f b=%f\n",a,b);
c=max(a,b);
printf("Max is %f\n",c);
}


int max(x,y)
float x,y;
{
float z;
z=x>y?x:y;
printf("z=%f\n",z);
return(z);
}

搜索更多相关的解决方案: 小数  

----------------解决方案--------------------------------------------------------

你的程序在我的编译器上有错.我改为了:
#include<stdio.h>

int max(float x,float y);

void main()
{
float a,b,c;
scanf("%f%f,",&a,&b);
printf("a=%f b=%f\n",a,b);
c=max(a,b);
printf("Max is %f\n",c);
}


int max(float x,float y) //这里改了!
{
float z;
z=x>y?x:y;
printf("z=%f\n",z);
return(z);
}
结果和你的一样

但是这样就有小数点的哦:
#include<stdio.h>

float max(float x,float y);

void main()
{
float a,b,c;
scanf("%f%f,",&a,&b);
printf("a=%.1f b=%.1f\n",a,b);
c=max(a,b);
printf("Max is %.1f\n",c);
}


float max(float x,float y)
{
float z;
z=x>y?x:y;
printf("z=%.1f\n",z);
return(z);
}
结果就能得到45.6


----------------解决方案--------------------------------------------------------
以下是引用laigaoat2005在2007-4-23 22:41:40的发言:

以下程序运行输入45.6 39.2 得出的max为45.00000 还有的小数位数在哪儿去了?

#include<stdio.h>
int max(float x,float y);
main()
{
float a,b,c;
scanf("%f%f,",&a,&b);
printf("a=%f b=%f\n",a,b);
c=max(a,b);
printf("Max is %f\n",c);
}


int max(x,y)
float x,y;
{
float z;
z=x>y?x:y;
printf("z=%f\n",z);
return(z);
}

int max(x,y)
你的函数定义成整型,那么它的返回必然也是整型


----------------解决方案--------------------------------------------------------
哦,对了,真是粗心啊。谢谢你啊。我急了一晚上都没有急出来。

----------------解决方案--------------------------------------------------------

以下是引用laigaoat2005在2007-4-23 22:41:40的发言:

以下程序运行输入45.6 39.2 得出的max为45.00000 还有的小数位数在哪儿去了?

#include<stdio.h>
int max(float x,float y);
main()
{
float a,b,c;
scanf("%f%f,",&a,&b);
printf("a=%f b=%f\n",a,b);
c=max(a,b);
printf("Max is %f\n",c);
}


int max(x,y)
float x,y;
{
float z;
z=x>y?x:y;
printf("z=%f\n",z);
return(z);
}

将输出改一下更好: printf("z=%.1f\n",z); 这样就能输出一个小数位结果更好的


----------------解决方案--------------------------------------------------------
改的好啊,楼上的厉害拉
----------------解决方案--------------------------------------------------------
不行啊,不改函数类型始终都没有那个小数位。
----------------解决方案--------------------------------------------------------
  相关解决方案