一、if嵌套语句

      注意大于号和小于号。

      if(表达式) 语句
其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。

1-120129203325F3.jpg

      第二种形式为: if-else
if(表达式) 
    语句1;
else 
    语句2;
其语义是:如果表达式的值为真,则执行语句1,否则执行语句2 。

1-1201292039355E.jpg

#include<stdio.h>
int main()
{
    int a, b, c, max;
    scanf("%d%d%d", &a, &b, &c);
    if (a > b)
    {
        if (a > c)
            max = a;
        else
            max = c;
    }
    else
    {
        if (b > c)
            max = b;
        else
            max = c;
    }
    printf("%d\n", max);
    return 0;
}

二、三目运算符

     运用三目运算符(x?y:z;)简便运算。

     对于条件表达式x ? y : z;先计算条件x,然后进行判断。如果b的值为true,计算y的值,运算结果为y的值;否则,计算z的值,运算结果为z的值。一个条件表达式绝不会既计算y,又计算z。

     ? : ; "?"运算符的含义是:先求表达式1的值,如果为真,则执行表达式2,并返回表达式2的结果;如果表达式1的值为假,则执行表达式3,并返回表达式3的结果。

     可以理解为条件 ? 结果1 : 结果2 里面的?号是格式要求。也可以理解为条件是否成立,条件成立为结果1,否则为结果2。

即为

if(x) 
{
    return y;
} 
else 
{
    return z; 
}

     注意:在C语言中,结果1 和 结果2的类型必须一致。

#include<stdio.h>

int main()
{
    int a, b, c, max;
    scanf("%d%d%d", &a, &b, &c);
    max = a > b ? a : b;
    max = max > c ? max : c;
    printf("%d\n", max);
    return 0;
}

三、妙用中间变量

      定义一个中间变量 m,假设它是最大值,并和a,b,c比较。、

#include<stdio.h>

int main()
{
    int a, b, c, m;
    scanf("%d%d%d", &a, &b, &c);
    if (a > b)
        m = a;
    else
        m = b;
    if (c > m)
        m = c;
    printf("%d", m);
    return 0;
}

四、巧用赋值

       假定其中一个值为最大值,将实际最大值赋值于它,最后输出

#include<stdio.h>

int main()
{
    int a, b, c;
    scanf("%d%d%d", &a, &b, &c);
    if (a < b)
        a = b;
    if (a < c)
        a = c;
    printf("%d", a);
    return 0;
}

五、运用子函数

      调用函数寻找最大值,让主函数简洁。

#include<stdio.h>

int max(int x, int y)
{
    return x > y ? x : y;
}

int main()
{
    int a, b, c, m;
    scanf("%d%d%d", &a, &b, &c);
    printf("%d", max(max(a, b), c));
    return 0;
}

(补充)任意个数求最大值(假设10个数)

      运用for循环,遍历对比数组,假定中间量为最大值。

#include<stdio.h>

int main()
{
    int i = 0;
    int arr[10] = {0};
    int max = 0;  //定义变量max用来作比较
    for (i = 0; i < 10; i++)
    {
        scanf("%d", &arr[i]);    //输入整数
    }
    for (i = 0; i < 10; i++)
    {
        if (max < arr[i])
            max = arr[i];
    }
    printf("最大值为%d\n", max);
    return 0;
}


点赞(2)
 

0.0分

318 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 52 条评论

civali 2年前 回复TA
赋值法那儿第二个if要改成else if才对吧
IAN 2年前 回复TA
牛逼
魏老6 2年前 回复TA
牛逼
无风 2年前 回复TA
那个第五个方法第十行那个m不用也可以
脑瓜上长蘑菇 2年前 回复TA
666,我以为只能一个一个比呢
好好刷题 2年前 回复TA
新手能看懂,真的很有用!
摆烂大大王 2年前 回复TA
牛逼
望空破茧 2年前 回复TA
厉害
Ziggy 2年前 回复TA
DEAN学C好男 2年前 回复TA
总结的真的很到位
!!!!!!!!!