天天看点

UT源码+105032014070

设计三角形问题的程序

      输入三个整数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();

}

转载于:https://www.cnblogs.com/destinyandfate/p/6530051.html