| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7644 人关注过本帖
标题:C语言中三角形的判别?
只看楼主 加入收藏
MARK357640995
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2008-9-19
收藏
 问题点数:0 回复次数:13 
C语言中三角形的判别?
#include "math.h"
void main()
{float a,b,c,p,s;
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&b+c>a&&a+c>b);
printf("构成三角形");
if(a==b||b==c||a==c);
printf("构成等腰三角形");
if(a==b&&a==c);
printf("构成等边三角形");
if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b);
printf("构成直角三角形");
else if
printf("不构成三角形");
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("s=%2.f\n",s)}
搜索更多相关主题的帖子: C语言 三角形 判别 
2008-09-26 15:00
守鹤
Rank: 4
来 自:山東臨沂
等 级:贵宾
威 望:12
帖 子:337
专家分:0
注 册:2008-6-20
收藏
得分:0 
你的程序有部分错误
#include "stdio.h"
#include "math.h"
void main()
{float a,b,c,p,s;
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&b+c>a&&a+c>b)                //后面的分号删掉
printf("构成三角形");
if(a==b||b==c||a==c)                   //同上
printf("构成等腰三角形");
if(a==b&&a==c)                           //同上
printf("构成等边三角形");
if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b)    //同上

printf("构成直角三角形");
else                                        //else后无if
printf("不构成三角形");
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("s=%2.f\n",s);}                             //语句后加分号
2008-09-26 15:11
MARK357640995
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2008-9-19
收藏
得分:0 
谢谢
2008-09-26 15:21
ensky_cy
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-9-26
收藏
得分:0 
#include "math.h"
void main()
{float a,b,c,p,s;
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&b+c>a&&a+c>b)
  {printf("构成三角形");
   if(a==b||b==c||a==c)
     printf("构成等腰三角形");
   if(a==b&&a==c)
     printf("构成等边三角形");
   if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b)
     printf("构成直角三角形");
   }
else if(1) /*直接else最干净*/
printf("不构成三角形");
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("s=%2.f\n",s)}
你觉得这个程序能达到目的吗?这是我改的,else总是与最近的if配对,不加{}的话程序中else就与
   if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b)
     printf("构成直角三角形");
中if搭配了(因为我的是vista系统,暂时没有安TC,所以还没有运行上面程序,个人意见,供楼主参考)
2008-09-26 16:45
ensky_cy
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-9-26
收藏
得分:0 
[bo][un]ensky_cy[/un] 在 2008-9-26 16:45 的发言:[/bo]

#include "math.h"
void main()
{float a,b,c,p,s;
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&b+c>a&&a+c>b)
  {printf("构成三角形");
   if(a==b||b==c||a==c)
     printf("构成等腰三角形");
   if(a==b&&a= ...

最后一句要加‘;’,我忘加了
2008-09-26 17:03
hxlou520
Rank: 1
来 自:中國_廈門
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-8-29
收藏
得分:0 
我看你還是不要下載TC比較好,因為它有的時候判斷不好?

你查不出程序錯在那裏~ 所以還是用DEV-C++這個編譯吧~

我只是這樣說,看你個人愛好~

補充:  我不是做廣告的~~

比如:
在TC裏面用 void main()不會提示錯誤,可以 DEV-C++就會提示~ 這是有點區別的~

還是看你個人啦~

只要我用心,沒有不成功.
在學習中不斷失敗,必然是提高自己的一種手段.
2008-09-26 17:13
hxlou520
Rank: 1
来 自:中國_廈門
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-8-29
收藏
得分:0 
[bo][un]ensky_cy[/un] 在 2008-9-26 16:45 的发言:[/bo]

#include "math.h"
void main()
{float a,b,c,p,s;
scanf("%f%f%f",&a,&b,&c);
if(a+b>c&&b+c>a&&a+c>b)
  {printf("构成三角形");
   if(a==b||b==c||a==c)
     printf("构成等腰三角形");
   if(a==b&&a= ...

你這樣寫後面printf("");都會輸出的,所以我幫你改了下~不知道是不是LZ想要的結果~  希望對你有幫助~


#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(void)
{
    float a,b,c,p,s;
    scanf("%f%f%f",&a,&b,&c);
    if(a+b>c&&b+c>a&&a+c>b)
        printf("构成三角形\n");
    else if(a==b||b==c||a==c)
        printf("构成等腰三角形\n");
    else if(a==b&&a==c)
        printf("构成等邊三角形\n");
    else if(a*a+b*b==c*c||b*b+c*c==a*a||a*a+c*c==b*b)
        printf("构成直角三角形\n");
    else
        printf("不构成三角形\n");
    p=(a+b+c)/2;
    s=sqrt(p*(p-a)*(p-b)*(p-c));
    printf("s=%2.f\n",s);
    system("pause");
    return 0;
}

只要我用心,沒有不成功.
在學習中不斷失敗,必然是提高自己的一種手段.
2008-09-26 17:24
hxlou520
Rank: 1
来 自:中國_廈門
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-8-29
收藏
得分:0 
起先幫你改的後面部份還是有問題,所以我現在幫你重新修改...

因為其先那樣改後面部分如果輸入不能構能三角形應該現實提示不能構成三角形後退出程序...

如果像你那樣,後面求面積部份還是會執行的~
所以這樣應該達不到題目的要求~  不知道我做的對不對,供參考~

所以標紅色部份為修改部份如下:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(void)
{
    float a,b,c,p,s;
    scanf("%f%f%f",&a,&b,&c);
    if(a+b>c && b+c>a && a+c>b)
        printf("构成三角形\n");
    else if(a==b || b==c || a==c)
        printf("构成等腰三角形\n");
    else if(a==b && a==c && b==c)
        printf("构成等邊三角形\n");
    else if(a*a+b*b==c*c || b*b+c*c==a*a || a*a+c*c==b*b)
        printf("构成直角三角形\n");
    else
    {
        printf("不构成三角形\n");
        system("pause");
        return 0;
    }
    p=(a+b+c)/2;
    s=sqrt(p*(p-a)*(p-b)*(p-c));
    printf("s=%2.f\n",s);
    system("pause");
    return 0;

}

[[it] 本帖最后由 hxlou520 于 2008-9-26 17:44 编辑 [/it]]

只要我用心,沒有不成功.
在學習中不斷失敗,必然是提高自己的一種手段.
2008-09-26 17:41
ensky_cy
Rank: 1
来 自:湖北
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-9-26
收藏
得分:0 
??????
8楼有没有试过输入0,0,0三个数,看是什么结果?????
2008-09-27 07:26
hxlou520
Rank: 1
来 自:中國_廈門
等 级:新手上路
帖 子:116
专家分:0
注 册:2008-8-29
收藏
得分:0 
我想請教下8#,你的意思是不是想說輸入三個0是不是輸出錯誤?

只要我用心,沒有不成功.
在學習中不斷失敗,必然是提高自己的一種手段.
2008-09-27 08:48
快速回复:C语言中三角形的判别?
数据加载中...
 
   



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

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