C语言自增自减运算、判断奇偶数、三角形面积

问题引入

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

结果分析:

  1. 有结果可以看出,a、b、c、d四个变量在定义时都定义为了整数1,a,b执行了自增运算,c,d执行了自减运算,所以初始值都为1,终值也都增加或减少了1;
  2. 自增,自减运算表达式的值并不相同,++a的值为a+1,但++b的值仍为b; 同理 --c的值为c-1,d--的值为d;
  3. 解释++var--var这种自增减算法表达式的值是变量自增减后的值,即变量先进行自增减运算,然后将结果赋给表达式;
  4. 解释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(pa)(pb)(pc)
其中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
"""
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值