| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 870 人关注过本帖
标题:新人求助。三角形面积问题
只看楼主 加入收藏
yuanye2416
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2012-9-27
结帖率:92.31%
收藏
已结贴  问题点数:10 回复次数:12 
新人求助。三角形面积问题
#include <stdio.h>
#include <math.h>
void main()
{
    int a,b,c;
    double s=(a+b+c)/2;
    printf ("请输入三条边的长度:\n");
    scanf ("a=%2d b=%2d c=%2d\n",&a,&b,&c);
    if(a+b>=c) printf("%lf",s=abs(s*(s-a)*(s-b)*(s-c)));
        else printf ("输入数据错误:两边之和必须大于第三边!\n");
    if(a+c>=b) printf("%lf",s=abs(s*(s-a)*(s-b)*(s-c)));
        else printf ("输入数据错误:两边之和必须大于第三边!\n");
    if(b+c>=a) printf("%lf",s=abs(s*(s-a)*(s-b)*(s-c)));   
        else printf ("输入数据错误:两边之和必须大于第三边!\n");

}

请指教错误在哪? 为何随便输入三个数字,都是出现“输入数据错误:两边之和必须大于第三边!”
4楼说的多 scanf ("%d%d%d",&a,&b,&c); 改了,但是又有新问题出现了。
我要是出现一个答案,为何?这样

请输入三条边的长度:
 2 3 1
0.000000
0.000000
0.000000
ress any key to continu




[ 本帖最后由 yuanye2416 于 2012-9-27 19:31 编辑 ]
搜索更多相关主题的帖子: 三角形 include abs 
2012-09-27 18:22
煤辉
Rank: 1
来 自:山东青岛
等 级:新手上路
帖 子:5
专家分:6
注 册:2012-9-27
收藏
得分:3 
同为新手,共求。。。。

          IT'S MY  HOBBY
2012-09-27 18:49
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:3 
double s=(a+b+c)/2; ==> double s = (a + b + c) / 2.0;

重剑无锋,大巧不工
2012-09-27 18:52
silent_world
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:1
帖 子:258
专家分:1138
注 册:2011-9-24
收藏
得分:3 
没有试过,估计是因为你使用了一个强悍的输入:
scanf ("a=%2d b=%2d c=%2d\n",&a,&b,&c);
如果使用比较弱的输入:
scanf ("%d%d%d",&a,&b,&c);
应该没有问题。
2012-09-27 18:56
yuanye2416
Rank: 1
等 级:新手上路
帖 子:35
专家分:0
注 册:2012-9-27
收藏
得分:0 
回复 4楼 silent_world
感谢。但问题又来了,如图。我要出现一个答案,现在IF出现3个答案,而且是0.000000

求解决?
2012-09-27 19:26
张朝成
Rank: 4
等 级:业余侠客
帖 子:149
专家分:265
注 册:2012-3-22
收藏
得分:0 
因为if语句为真,你的输出语句有三句,所有出现3个;还有你定义了double类型,那么在输出的时候系统默认小数点是6位。
2012-09-27 20:29
chengyang123
Rank: 2
等 级:论坛游民
帖 子:11
专家分:40
注 册:2012-9-19
收藏
得分:0 
#include <stdio.h>
#include <math.h>
void main()
{
   int  a,b,c;
    double s;
    printf ("请输入三条边的长度:\n");
  
    scanf ("%d,%d,%d",&a,&b,&c);
      s=double((a+b+c)/2);
    if((a+b>=c)&&(a+c>=b)&&(b+c>=a))
        {
        printf("%lf",s=sqrt(s*(s-a)*(s-b)*(s-c)));
        }
        else
            {
         printf ("输入数据错误:两边之和必须大于第三边!\n");
         }
   
}
2012-09-27 21:07
chengyang123
Rank: 2
等 级:论坛游民
帖 子:11
专家分:40
注 册:2012-9-19
收藏
得分:0 
好好看一下吧。就不一一给你改了!
2012-09-27 21:08
sgbgege
Rank: 1
等 级:禁止发言
帖 子:3
专家分:0
注 册:2012-9-27
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2012-09-27 22:37
冰冻零点
Rank: 3Rank: 3
来 自:西安电子科技大学
等 级:论坛游侠
帖 子:81
专家分:136
注 册:2012-9-18
收藏
得分:0 
学习了

好好学习,天天向上
2012-09-28 08:58
快速回复:新人求助。三角形面积问题
数据加载中...
 
   



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

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