设计三角形问题的程序

输入三个整数a、b、c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形、等腰三角形、一般三角形(特殊的还有直角三角形),以及不构成三角形。(等腰直角三角形,判断为等腰三角形)

现在要求输入三个整数a、b、c,必须满足以下条件:

条件1   1≤a≤100          条件4   a<b+ c

条件2   1≤b≤100          条件5   b<a+ c

条件3   1≤c≤100          条件6   c<a+ b

String triangle(int a,int b,int c)    返回字符型

程序要求:

1)先显示:“请输入三角形的三条边:”

2)只要有不满足条件1,2,3之一,就返回“边的值不在范围内!”

3)只要有不满足4,5,6之一,就返回“不构成三角形”

4)根据边的情况分别返回:“等边三角形”“等腰三角形”“直角三角形”“一般三角形”

源码:

#include<stdio.h>

int SameLengthNum(int a,int b,int c){

  int count = 0;

  if(a==b){   count++;  }

  if(a==c){   count++;  }

  if(b==c){   count++;  }

  return count;

}

char* Triangle(int a,int b,int c){

  char* ch;

  if(!(1<=a<=100) || !(1<=b<=100) || !(1<=c<=100)){   return ch="边的值不在范围内";  }

  if(!(a<(b+c)) || !(b<(a+c)) || !(c<(a+b))){   return ch="不构成三角形";  }

  switch(SameLengthNum( a, b, c)){

    case 0:{

      if((a*a+b*b)==(c*c) || (a*a+c*c)==(b*b) || (c*c+b*b)==(a*a))

        return ch="直角三角形";

      else

        return ch="一般三角形";

    }

    case 1: return ch="等腰三角形";

    case 3: return ch="等边三角形";

  }

}

void UseMethod(){

  int a,b,c;

  printf("请输入三角形的三条边(格式:a,b,c):\n");

  scanf("%d,%d,%d",&a,&b,&c);

  char* ch = Triangle(a,b,c);

  printf("测算结果:%s\n\n\n",ch);

}

void Menu(){

  bool flag = true;

  while(flag){

    printf("What can I do for you?\n\t1.测算三角形类型\n\t0.退出\n选择您所需要的功能:\n");

    int select = 0;

    scanf("%d",&select);

    switch(select){

      case 0: flag = false;printf("感谢您的使用,再见!\n");break;

      case 1: UseMethod();break;

    }

  }

}

void main(){  Menu(); }

-----------------------------------------3.19-----------------------------------------

修改后代码:

#include<stdio.h>

int SameLengthNum(int a,int b,int c){

  int count = 0;

  if(a==b){

    count++;

  }

  if(a==c){

    count++;

  }

  if(b==c){

    count++;

  }

  return count;

}

char* Triangle(int a,int b,int c){

  char* ch;

  if(!(1<=a&&a<=100) || !(1<=b&&b<=100) || !(1<=c&&c<=100)){

    return ch="边的值不在范围内";

  }

  if(!(a<(b+c)) || !(b<(a+c)) || !(c<(a+b))){

    return ch="不构成三角形";

  }

  switch(SameLengthNum( a, b, c)){

    case 0:{

      if((a*a+b*b)==(c*c) || (a*a+c*c)==(b*b) || (c*c+b*b)==(a*a))

        return ch="直角三角形";

      else

        return ch="一般三角形";

    }

    case 1: return ch="等腰三角形";

    case 3: return ch="等边三角形";

  }

}

void UseMethod(){

  float a,b,c;

  printf("请输入三角形的三条边(格式:a,b,c):\n");

  scanf("%f,%f,%f",&a,&b,&c);

  if((int)a!=a||(int)b!=b||(int)c!=c){

    printf("请输入整数。\n");

  }

  else{

    char* ch = Triangle(a,b,c);

    printf("测算结果:%s\n\n\n",ch);

  }

}

void Menu(){

  bool flag = true;

  while(flag){

    printf("What can I do for you?\n\t1.测算三角形类型\n\t0.退出\n选择您所需要的功能:\n");

    int select = 0;

    scanf("%d",&select);

    if(select!=0 && select!=1){

      printf("请输入0或1选择您所需要的功能。\n");

    }

    else{

      switch(select){

        case 0: {

          flag = false;

          printf("感谢您的使用,再见!\n");

          break;

        }

        case 1: UseMethod();break;

      }

    }

  }

}

void main(){

  Menu();

}

UT源码+105032014070的更多相关文章

  1. UT源码 005

    NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. 要求 ...

  2. UT源码105032014093

    需求描述: 设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Ce ...

  3. UT源码 065

    NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. 要求 ...

  4. UT源码105032014098

    (2)NextDate函数问题 NextDate函数说明一种复杂的关系,即输入变量之间逻辑关系的复杂性 NextDate函数包含三个变量month.day和year,函数的输出为输入日期后一天的日期. ...

  5. UT源码-124

    (1)设计三角形问题的程序 输入三个整数a.b.c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形.等腰三角形.一般三角形(特殊的还有直角三角形),以及不构成三角形.(等 ...

  6. UT源码 105032014098

    package exam1; import java.util.Scanner; public class test01 { static String nextDate(int year,int m ...

  7. UT源码_105032014033

    需求描述: 设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Ce ...

  8. UT源码+019

    设计三角形问题的程序 输入三个整数a.b.c,分别作为三角形的三条边,现通过程序判断由三条边构成的三角形的类型为等边三角形.等腰三角形.一般三角形(特殊的还有直角三角形),以及不构成三角形.(等腰直角 ...

  9. UT源码162

    (3)设计佣金问题的程序 commission方法是用来计算销售佣金的需求,手机配件的销售商,手机配件有耳机(headphone).手机壳(Mobile phone shell).手机贴膜(Cellp ...

随机推荐

  1. iOS App迁移(App Transfer)注意点

    1.App迁移需要苹果审核吗? 答:不需要 2.App迁移需要多长时间? 答:迁移操作过程很快,A账号发出申请,B账号接收,几分钟时间.App Store 展示B账号相关信息可能几分钟,也可能有延迟几 ...

  2. 用opencv检测人眼并定位瞳孔位置

    最近的研究要用到定位瞳孔的位置,所以上网搜了下相关的代码.总结如下: 1) 定位瞳孔可以直接使用opencv中的自带的分类器(haarcascade_eye_tree_eyeglasses.xml)来 ...

  3. 从知乎了解到,为什么Mysql禁用存储过程、外键和级联?

    打开帖子直接一张醒目的图,是阿里巴巴的Java开发手册对Mysql相关的要求. 看看下面的回复 灵剑 存储过程没有版本控制,版本迭代的时候要更新很麻烦.存储过程如果和外部程序结合起来用,更新的时候很难 ...

  4. Mybatis-plus之RowBounds实现分页查询

    物理分页和逻辑分页 物理分页:直接从数据库中拿出我们需要的数据,例如在Mysql中使用limit. 逻辑分页:从数据库中拿出所有符合要求的数据,然后再从这些数据中拿到我们需要的分页数据. 优缺点 物理 ...

  5. Jquery的深度拷贝和深度克隆

    有人问,拷贝和克隆不都是“复制”的意思吗. 这位看官问的好,一般情况下是一样的,但在jquery中却有些不同.jqurey深度拷贝一般只js对象的复制,是$.extend()方法,jquery深度克隆 ...

  6. Qt+json

    Json文件是这样: { "first fruit": { "describe":"an apple", "icon": ...

  7. Python学习札记(四十一) IO 1

    参考:IO NOTE A.Pre 1.IO在计算机中指Input/Output,也就是输入和输出. 2.IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但 ...

  8. Bert学习资料

    首先是Bert的论文和 attention is all you need的论文 然后是:将nlp预训练 迁移学习的发展从word2vec 到elmo bert https://mp.weixin.q ...

  9. javascript遍历json对象数据的方法

    JSON中,有两种结构:对象和数组,对象是没有length这个属性,而数组结构是有的,下面分别说下这两种结构之间的区别和遍历方式. 1.对象 一个对象以“{”开始,“}”结束.每个“key”后跟一“: ...

  10. android------引导页两种实现方式(原生和WebView网页实现)

    有的App当你第一次打开的是和常常会有引导页来描述一些App信息(功能,特点),当然也要做验证,验证第二次进入不进入引导页,直接进入App,此博客借助ViewPager来实现引导页, ViewPage ...