炫意html5
最早CSS3和HTML5移动技术网站之一

C语言选择结构 -C语言构造三角形问题(附带源码)

这是一个C语言编程实例:已知任意三条线段的长度(均为正整数),判断三条线段是否能构成一个三角形;若能构成三角形,判断所构成三角形的形状。

问题分析

输入三条线段的长度,依次代入变量 a、b、c。如果a+b<=ca+c<=bb+c<=a(即任意两条线段长度的和小于或等于第三条线段长度),则这三条线段不能构成三角形。

否则判断所构成三角形的形状:

  • 如果 a=b=c 则构成等边三角形。
  • 如果 a=b 或 b=c 或 a=c 则构成等腰三角形。
  • 如果 a2+b2=c或 a2+c2=b或 c2+b2=a则构成直角三角形。

算法描述

1) 定义浮点型变量 a、b、c;
2) 用 scanf( ) 从键盘输入三个正数给 a、b、c;
3) 如果a+b<=c或a+c<=b或b+c<=a成立,则提示不能构成三角形;
否则
如果a=b并且b=c成立,则提示构成等边三角形;
否则
如果a2+b2=c2a2+c2=b2c2+b2=a2成立,
如果a=b或b=c或a=c成立,则提示构成等腰直角三角形;
否则,提示构成直角三角形;
否则
如果a=b或b=c或a=c成立,则提示构成等腰三角形;
否则,提示构成普通三角形;
4) 结束。

代码清单 1:判断三条线段能否构成三角形

#include <stdio.h>
#include <stdlib.h>
int main( )
{
float a,b,c;
printf("分别输入三条线段的长度(用空格分隔):\n");
scanf("%f %f %f",&a,&b,&c);
if(a + b <= c || a + c <= b || b + c <= a)
printf("不能构成三角形\n");
else
if((a == b)&&(b == c))
printf("构成等边三角形\n");
else
if((a * a + b * b == c * c)||(a * a + c * c == b * b)||(b * b + c * c == a * a))
if((a == b)||(b == c)||(a == c))
printf("构成等腰直角三角形\n");
else
printf("构成直角三角形\n");
else
if((a == b)||(b == c)||(a == c))
printf("构成等腰三角形\n");
else
printf("构成普通三角形\n");
system("pause");
return 0;
}

运行结果为:

分别输入三条线段的长度(用空格分隔):
56 85 37
构成普通三角形

在上面的 C 程序中,因为 if-else 本身就是一条语句,所以其内层的 if-else 语句外面的{ }括号可以不写。

层级嵌套语句的缩进:为了使得程序具有更好的可读性,在书写程序时,通常使用键盘上面的 Tab 键在内层语句前面留白(添加空格),使得处在同一层次的语句左对齐,并且相对上一层的语句要向右缩进一个 Tab 位(四个半角空格)。

天猫超市双 11 推出以下优惠促销活动:

  • 购物满 50 元,打 9 折;
  • 购物满 100 元,打 8 折;
  • 购物满 200 元,打 7 折;
  • 购物满 300 元,打 6 折;

编程计算当购物满 s 元时,实际付费多少?

问题分析

使用 if…else… 语句的嵌套,根据优惠活动规则设置不同判断条件,以不同的折扣率计算实际付款额。

算法描述

1) 定义浮点型变量 s 和 f,分别存放消费额和实际付款额;
2) 用 scanf( ) 从键盘输入一个浮点数给 s;
3)如果 s<50,则不打折,实际付款额 f 等于 s;
否则,
如果 s<100,则实际付款额 f 等于 s*0.9;
否则,
如果 s<200,则实际付款额 f 等于 s*0.8;
否则,
如果 s<300,则实际付款额 f 等于 s*0.7;
否则,s 一定超过 300 元,则实际付款额 f 等于 s*0.6;
4)用 printf( ) 输出实际付款额 f。

代码清单 2:根据优惠规则计算实际付款额

#include <stdio.h>
#include <stdlib.h>
int main( )
{
float s,f;
printf("输入消费额:\n");
scanf("%f",&s);
if (s<50)
f = s;
else
if (s<100)
f = s*0.9;            //9折
else
if (s<200)
f = s*0.8;        //8折
else
if (s<300)
f = s*0.7;    //7折
else
f = s*0.6;    //6折
printf("实际付款额为:%.2f元\n",f);
system("pause");
return 0;
}

运行结果为:

输入消费额:
623
实际付款额为:373.80元

炫意HTML5 » C语言选择结构 -C语言构造三角形问题(附带源码)

Java基础教程Android基础教程