题目:


输入 a、b、c 三个值,输出其中最大值。


样例输入:


10 20 30


样例输出:


30

chrome_2018-06-22_20-51-30.png

解题思路:


说实在话,这一题有很多方法可以解决。如果用 C 来实现,一般都是使用 if 来判断,说白了就是用两个 if else。


直接给出部分代码

	if (a > b)  //判断 a,b 哪个大,把大的数赋值给 x1
		x1 = a;
	else 
		x1 = b;
	if (x1 > c) //判断 x1,c 哪个大
		printf("%d", x1);  //如果是 x1 大,输出 x1
	else
		printf("%d", c);  //如果是 c 大,输出 c


如果用 C++ 来实现,那就有简单一点的做法, 还是先给出部分代码,这里涉及到 STL 算法,max 这个算法就是用来返回最大值的。

int x1 = max(a, b);
int x2 = max(x1, c);
cout << x2 << endl;


 参考代码:


先给 C 的代码

#include <stdio.h>
int main()
{
	int a, b, c,x1;
	scanf("%d%d%d",&a,&b,&c);
	if (a > b)  // 判断 a,b 哪个大,把大的数赋值给 x1
		x1 = a;
	else 
		x1 = b;
	if (x1 > c) // 判断 x1,c 哪个大
		printf("%d", x1);  // 如果是 x1 大,输出 x1
	else
		printf("%d", c);  // 如果是 c 大,输出 c
	return 0;


再给 C++ 的代码

#include<iostream>
#include <algorithm>
using namespace std;
int main()
{
	int a, b, c;
	cin >> a >> b >> c;
	int x1 = max(a, b);  // 把 a,b 中大的值赋给 x1
	int x2 = max(x1, c);  // 把 x1,c 中大的值赋给 x2
	cout << x2 << endl;  // 输出最大值
	return 0;
}


本地测试结果如下图:Project4_2018-06-22_21-50-19.png

点赞(26)
 

0.0分

25 人评分

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

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

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

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

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

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

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

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

评论列表 共有 34 条评论

3年前 回复TA
#include<stdio.h>
int main
{
int a,b,c ;
scanf("%d%d%d",&a,&b,&c);

if(a>b>c or a>c>b)
printf("%d",a);
if(b>a>c or b>c>a)
printf("%d",b);
if(c>a>b or c>b>a)
printf("%d",c);
return 0;
}错在哪里呢
毛群祥是废物 3年前 回复TA
@毛群祥是废物 @Alaneee 问题解决了,谢谢你了
AlanEEE 3年前 回复TA
@毛群祥是废物 问题很多,第一个scanf变量没有地址,第二个最后一个else不需要给条件,第三个if else if else 下面的分号是中文分号
衍生 3年前 回复TA
@毛群祥是废物 同问
毛群祥是废物 3年前 回复TA
#include<stdio.h>
int main (void)
{   int a,b,c,d;
    scanf("%d%d%d",a,b,c);
    if(a<c&&b<c)
        d=c;
    else if(a<b&&c<b)
        d=b;
    else (b<a&&c<a)
        d=a;
    printf("%d",d);
    return 0;
}
我想问一下为什么这个代码实现不了
台灯下的晚自习 3年前 回复TA
@道长1573 你应该把"max="删掉
uq_89471218477 3年前 回复TA
@uq_89471218477 x,y,z=(input().split( )) max=x if y>x:     max=y     if z>y:     max=z     print(max)
uq_89471218477 3年前 回复TA
Python:
x,y,z=(input().split( ))
max=x
if y>x:
    max=y    
    x,y=y,x 
if z>y:
    max=z    
    z,y=y,z 
print(max)
加油吧 4年前 回复TA
@沫沫yummy @yummy00 不用输出“最大值是:”这几个汉字,直接输出最大值级阔以喽~机器不是人,生硬
New 4年前 回复TA
@沫沫yummy 输出格式不正确