| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 608 人关注过本帖
标题:[求助]这个程序有问题小数位上的数在哪儿去了
只看楼主 加入收藏
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
结帖率:88.89%
收藏
 问题点数:0 回复次数:6 
[求助]这个程序有问题小数位上的数在哪儿去了

以下程序运行输入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);
}

搜索更多相关主题的帖子: 小数 
2007-04-23 22:41
raulxxyuer
Rank: 1
等 级:新手上路
威 望:1
帖 子:178
专家分:0
注 册:2007-4-23
收藏
得分:0 

你的程序在我的编译器上有错.我改为了:
#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


我很沒用,總是學不會遺忘,總是學不會割捨本不屬於我的東西。
2007-04-23 22:54
福尔摩斯
Rank: 5Rank: 5
等 级:贵宾
威 望:12
帖 子:4011
专家分:370
注 册:2006-8-15
收藏
得分:0 
以下是引用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)
你的函数定义成整型,那么它的返回必然也是整型


自我放逐。。。
2007-04-23 22:59
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 
哦,对了,真是粗心啊。谢谢你啊。我急了一晚上都没有急出来。
2007-04-23 23:04
raulxxyuer
Rank: 1
等 级:新手上路
威 望:1
帖 子:178
专家分:0
注 册:2007-4-23
收藏
得分:0 
以下是引用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); 这样就能输出一个小数位结果更好的


我很沒用,總是學不會遺忘,總是學不會割捨本不屬於我的東西。
2007-04-23 23:09
ml342418175
Rank: 1
等 级:新手上路
威 望:1
帖 子:183
专家分:0
注 册:2007-4-13
收藏
得分:0 
改的好啊,楼上的厉害拉

做人要洒脱一点,潇洒一点!
2007-04-23 23:39
laigaoat2005
Rank: 4
等 级:业余侠客
帖 子:388
专家分:226
注 册:2007-4-5
收藏
得分:0 
不行啊,不改函数类型始终都没有那个小数位。
2007-04-24 23:23
快速回复:[求助]这个程序有问题小数位上的数在哪儿去了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015885 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved