| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 505 人关注过本帖
标题:为啥输出坐标,面积一下子就跳过了?求大神讲解
只看楼主 加入收藏
小小火
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2013-6-25
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:3 
为啥输出坐标,面积一下子就跳过了?求大神讲解
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void  sanjiaoxing()
{
    int x1,y1,x2,y2,x3,y3;
    double  area,s;
    double g,h,i;
    printf("请输入3个点的坐标,(不用加括号,坐标之间用逗号隔开)");
    scanf("%d,%d%d,%d%d,%d",&x1,&y1,&x2,&y2,&x3,&y3);
+     g=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
     h=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
     i=sqrt((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1));
         if(g>=h+i||h>=g+i||i>=g+h)
     {
         printf("不是三角形");
     }
         else if(g=h=i)
         {
             printf("等边三角形");
         }
         else if(g*g==i*i+h*h||i*i==g*g+h*h||h*h==i*i+g*g)
         {
             printf("直角三角形");
         }
         else printf("一般三角形");
      s=(g+h+i)/2.0;
      area=sqrt(s*(s-g)*(s-h)*(s-i));
      printf("三角形的面积为:%f\n",area);
}

void main()                                        //程序主函数...
{
  printf("\n\n\n\n\n\t\t    ~********欢迎进入经典算法系统********~\n\n\n\n");   //欢迎界面...
  printf("\t\t~***********制作者:***  2013年6月***********~\n\n\n\n");
  printf("\t\t    ~**********按任意键进入主菜单:**********~");
  getchar();
  menu();
}

menu()
{
    char c;

do
   {
     system("cls");
     printf("\n\n\t\t      ~*****************************~\n");    //主菜单...
     printf("\n\t\t                  主 菜 单\n");  
     printf("\n\t\t      ~*****************************~\n\n\n");
     printf("\n>***********判断三角形**************<\n");
     printf("\t\t0:退出系统\n");
     do{
         printf("\n\t   请选择输入选项【1\\0】:_");
         c=getchar();getchar();                             //读取输入数字...
     }while(c!='1'&&c!='0');
     
     switch(c)                                          //判断所选项目...
       {
         case '1': sanjiaoxing();break;
         case '0': system("cls");exit(0);
       }
     printf("\n按任意键返回主菜单:_");
     getchar();                                      //读取选择的任意键...                     
     system("cls");
   }while(1);

}


         


搜索更多相关主题的帖子: include double 三角形 
2013-06-25 23:16
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:10 
在此函数的最后  void  sanjiaoxing()   也就是printf语句后面加上一个getchar();
不过你的程序还是有其它问题...  自己再继续找吧

三十年河东,三十年河西,莫欺少年穷!
2013-06-26 02:19
lzj12530
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:2
帖 子:264
专家分:841
注 册:2013-3-28
收藏
得分:0 
你的直角三角形 判断是有错误的. 根号2的平方 和1.414的平方是不等的。只能使用精度来判断

C++菜鸟
2013-06-26 08:14
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
以下是引用lzj12530在2013-6-26 08:14:17的发言:

你的直角三角形 判断是有错误的. 根号2的平方 和1.414的平方是不等的。只能使用精度来判断
前面是对的,但后面的“使用精度来判断”我不信,从理论上也不可能
对于任何一个精度值,都无法保证进度以内的就一定是正确的,只是精度放得越松则正确率越高而已
对于任何一个精度值,都无法保证进度以外的就一定是错误的,只是精度放得越严则误判率越低而已

对于楼主这倒题而言,
三个点坐标已经有了,判断是否为三角形,只需要判断三点是否共线就行了,不涉及到浮点数
判断是否为等边三角形和直角三角形,可以直接拿边长的平方来运算,也不涉及到浮点数
2013-06-26 10:15
快速回复:为啥输出坐标,面积一下子就跳过了?求大神讲解
数据加载中...
 
   



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

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