设计三角形问题的程序

输入三个整数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. SQL语句中case函数

    case函数,严格的意义上来讲case函数已经试流程控制语句了,不是简单意义上的函数,不过为了方便,很多人将case函数称为流程控制函数. case函数的一般有两种用法:1.case expressi ...

  2. 解决android studio 模拟器取法启动声音的错误

    Emulator: dsound: Reason: No sound driver is available https://jingyan.baidu.com/article/a65957f4348 ...

  3. Web开发相关笔记 #03#

    HTTP Status 500  ※  jsp 放在 WEB-INF 外面  ※ 使用 JDBC 时需要 close 什么 ※ execute 和 executeUpdate ※ How can I ...

  4. P1136 迎接仪式

    P1136 迎接仪式 $O(n^{2}k)$:$f[i][k]$表示到第$i$个字符为止,交换$k$次,得到的最多子串数 那么枚举位置$j$,状态可以从$f[j][k-1]+1$转移过来 $O(nk^ ...

  5. Ubuntu桌面环境安装

    图形程序安装 运行StartX命令检查是否已安装,若提示未安装则执行: sudo apt-get install xinit 环境管理器 GNOME: sudo apt-get install gdm ...

  6. Installing VirtualBox DKMS in Kali 2.0

    Kali linux is one of the mainly used operating system by the Ethical hackers and information securit ...

  7. 《Effective Java 2nd》第7章 方法

    目录 第38条 检查参数的有效性 第39条 必要时进行保护性拷贝 第40条 谨慎设计方法签名 第41条 慎用重载 第42条 慎用可变参数 第43条 返回零长度的数组或集合,而不是null 第44条 为 ...

  8. 【spring-boot】 springboot整合quartz实现定时任务

    在做项目时有时候会有定时器任务的功能,比如某某时间应该做什么,多少秒应该怎么样之类的. spring支持多种定时任务的实现.我们来介绍下使用spring的定时器和使用quartz定时器 1.我们使用s ...

  9. hdu2897找规律

    又是找规律,无语了,说好的博弈呢,搞了半天的sg函数没有一点头绪 当n%(p+q)==0时,先手win,第一次取q个,以后每次,后手取k个,先手就取p+q-k个,最后,后手必取q个 当n=(p+q)* ...

  10. 【转】ubuntu下修改文件夹权限

    常用方法如下: sudo chmod 600 ××× (只有所有者有读和写的权限)sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)sudo chmod 700 ××× ...