问题引入
1、实现++ 和-- 的输出 2、判断奇偶数 3、输入三边,判断是否构成三角形并求面积
自增和自减运算
运行代码如下
#include <stdio.h>
int main()
{
int a = 1, b = 1, c = 1, d = 1;
printf("%d\t", a);
printf("%d\t", ++a);
printf("%d\n", a);
printf("%d\t", b);
printf("%d\t", b++);
printf("%d\n", b);
printf("%d\t", c);
printf("%d\t", --c);
printf("%d\n", c);
printf("%d\t", d);
printf("%d\t", d--);
printf("%d\t", d);
}
运行结果如下
1 2 2
1 1 2
1 0 0
1 1 0
结果分析:
- 有结果可以看出,a、b、c、d四个变量在定义时都定义为了整数1,a,b执行了自增运算,c,d执行了自减运算,所以初始值都为1,终值也都增加或减少了1;
- 自增,自减运算表达式的值并不相同,
++a 的值为a+1,但++b 的值仍为b; 同理 --c 的值为c-1,d-- 的值为d; - 解释
++var 或--var 这种自增减算法表达式的值是变量自增减后的值,即变量先进行自增减运算,然后将结果赋给表达式; - 解释
var++ 或var-- 这种自增减算法表达式的值是变量的值,即变量先把值赋给表达式,然后自身再进行增减运算
判断奇偶数
判断奇偶数,我们只需判断这个整数对2取余数的结果为1或者0就可以;取余运算在c语言中用% ,话不多说,上代码
#include <stdio.h>
void main()
{
int num;
printf("请输入一个数字");
scanf("%d", &num);
if (num % 2)
printf("%d为奇数", num);
else
printf("%d为偶数", num);
}
输入三个数,判断是否为三角形,如是,则计算三角形的面积
此例中,首先需要三边是否构成三角形,条件为任意两边大于第三边,假设三边分别为
a
,
b
,
c
a,b,c
a,b,c则有
a
+
b
>
c
a+b>c
a+b>c
a
+
c
>
b
a+c>b
a+c>b
b
+
c
>
a
b+c>a
b+c>a可以在条件语句中暴力判断 已知三边计算三角形面积需用到海伦公式
s
=
p
(
p
?
a
)
(
p
?
b
)
(
p
?
c
)
s=\sqrt{p(p-a)(p-b)(p-c)}
s=p(p?a)(p?b)(p?c)
? 其中p为周长的一半
p
=
a
+
b
+
c
2
p=\frac{a+b+c}{2}
p=2a+b+c? 海伦公式的推导详见百度百科:海伦公式 参考代码
#include <stdio.h>
#include <math.h>
void main()
{
double a, b, c, p, s;
printf("请输入三边长度:");
scanf("%lf%lf%lf", &a, &b, &c);
if ((a + b > c) & (a + c > b) & (b + c > a))
{
p = (a + b + c) / 2;
s = sqrt(p * (p - a) * (p - b) * (p - c));
printf("三边构成三角形,面积为%.2lf", s);
}
else
printf("%f,%f,%f三边不构成三角形", a, b, c);
}
[1]:
"""
Created on Fri Apr 1 22:30:03 2022
@author: YLH
"""
|