一、if嵌套语句
注意大于号和小于号。
if(表达式) 语句
其语义是:如果表达式的值为真,则执行其后的语句,否则不执行该语句。

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

#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;
}0.0分
319 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
#include<stdio.h> int main() { int a,b,c; scanf("%d,%d,%d",&a,&b,&c); if (a>b&&a>c) printf("%d",a); else if(b>a&&b>c) printf("%d",b); else printf("%d",c); return 0; } 为什么一直显示我答案错了啊,能不能来个人帮帮我#include<stdio.h> int main() { int i = 0; int arr[10] = {0}; int max; //定义变量max用来作比较 for (i = 0; i < 10; i++) { scanf("%d", &arr[i]); max=arr[0]; //输入整数 } for (i = 0; i < 10; i++) { if (max < arr[i]) max = arr[i]; } printf("最大值为%d\n", max); return 0; } 最后一个十个数取最大值,如果输入结果全是负数,那么输出为0,应该把max赋值为数组中的第一个数,这样无论正数还是负数都不影响。#include <stdio.h> int main() { int a,b,c; scanf("%d %d %d",&a,&b,&c); int max=0; if(a>b){ if(a>c){ max=a; }else{ max=c; } }else{ if(b>c){ max=b; }else{ max=c; } } printf("The max is%d\n",max); return 0; } 请问大佬们这个程序哪里错了?为什么不合格,我要哭了@琴久 #include<stdio.h> main() { int a,b,c,max; printf("请输入第一个数字\n"); scanf("%d",&a); printf("请输入第二个数字\n"); scanf("%d",&b); printf("请输入第三个数字\n"); scanf("%d",&c); max=a; if(b>max) { max=b; } if(c>max) { max=c; } printf("三个数中的最大值为:%d\n",max); return 0; }#include<stdio.h> main() { int a,b,c,max; printf("请输入第一个数字\n"); scanf("%d",&a); printf("请输入第二个数字\n"); scanf("%d",&b); printf("请输入第三个数字\n"); scanf("%d",&c); max=a; if(b>max) { max=b; } if(c>max) { max=c; } printf("三个数中的最大值为:\n",max); return 0; } 这个代码有什么问题吗