C语言构造三角形问题(附带源码)
这是一个C语言编程实例:已知任意三条线段的长度(均为正整数),判断三条线段是否能构成一个三角形;若能构成三角形,判断所构成三角形的形状。
否则判断所构成三角形的形状:
代码清单 1:判断三条线段能否构成三角形
运行结果为:
在上面的 C 程序中,因为 if-else 本身就是一条语句,所以其内层的 if-else 语句外面的
编程计算当购物满 s 元时,实际付费多少?
代码清单 2:根据优惠规则计算实际付款额
运行结果为:
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
问题分析
输入三条线段的长度,依次代入变量 a、b、c。如果a+b<=c
或a+c<=b
或b+c<=a
(即任意两条线段长度的和小于或等于第三条线段长度),则这三条线段不能构成三角形。否则判断所构成三角形的形状:
- 如果 a=b=c 则构成等边三角形。
- 如果 a=b 或 b=c 或 a=c 则构成等腰三角形。
- 如果 a2+b2=c2 或 a2+c2=b2 或 c2+b2=a2 则构成直角三角形。
算法描述
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=c2
或a2+c2=b2
或c2+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 语句外面的
{ }
括号可以不写。
天猫超市双 11 推出以下优惠促销活动:层级嵌套语句的缩进:为了使得程序具有更好的可读性,在书写程序时,通常使用键盘上面的 Tab 键在内层语句前面留白(添加空格),使得处在同一层次的语句左对齐,并且相对上一层的语句要向右缩进一个 Tab 位(四个半角空格)。
- 购物满 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元
声明:《C语言系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。