| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1708 人关注过本帖
标题:给定三角形三边长,求面积。程序源码找错
只看楼主 加入收藏
RNLSoul
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-5-4
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:4 
给定三角形三边长,求面积。程序源码找错
    自己查了几遍,觉得没错。请大家帮忙找错,先谢过了。
//给定三角形三边长,求面积
#include<stdio.h>
#include<math.h>
int main(void)
{
    double a, b, c, s, area;
    printf("请输入三角形三边长a, b, c:\n");
    scanf("%f, %f, %f", &a, &b, &c);
    s = (a + b + c) / 2.0;
    area = sqrt(s * (s - a) * (s - b) * (s - c));
    printf("该三角形的面积为:%.2f", area);
    return 0;
}
输入3.0, 4.0, 5.0运算结果为-0.00
搜索更多相关主题的帖子: include double return 三角形 
2016-05-24 15:26
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:0 
%lf
2016-05-24 15:30
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:5 
"%f, %f, %f" 当然得改为 "%lf, %lf, %lf"
但即使这样也很奇怪,难道输入“3 ,4 ,5”就算错,必须数字后面紧接着逗号?!
所以,建议改为"%lf ,%lf ,%lf"
这样输入“       3       ,        4          ,            5         ”都可以
2016-05-24 15:34
RNLSoul
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2016-5-4
收藏
得分:0 
    感谢“rjsp”的回复。帮我找到了问题的根源,我说怎么谭浩强书上用的%f没错,我的程序错了。顺便百度,深入了解了一下。
%f和%lf分别是float类型和double类型用于格式化输入输出时对应的格式符号。
其中:
float,单精度浮点型,对应%f.
double,双精度浮点型,对应%lf.

在用于输出时:
float类型可以使用%lf格式,但不会有任何好处。
double类型如果使用了%f格式可能会导致输出错误。

在用于输入时:
double 类型使用了%f格式,会导致输入值错误。
float类型使用double类型不仅会导致输入错误,还可能引起程序崩溃。

所以在输入输出时,一定要区分好double和float,而使用对应的格式符号。


C语言自学者(初登殿堂)
2016-05-24 16:01
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9032
专家分:54061
注 册:2011-1-18
收藏
得分:0 
在用于输出时:
float类型可以使用%lf格式,但不会有任何好处。
double类型如果使用了%f格式可能会导致输出错误。
因为参数传递时,float是提升到double的,所以用于printf时,标准一开始规定float和double都用%f
后来好多人受scanf的影响,将double的控制符写成%lf,所以标准规定double在printf中也可以用%lf

总结一下:
在scanf中,float用%f,double用%lf,不能瞎写
在printf中,float和double都用%f,但写成%lf也都不会错
2016-05-24 16:32
快速回复:给定三角形三边长,求面积。程序源码找错
数据加载中...
 
   



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

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