原题链接:[编程入门]三个数最大值
题目:
输入 a、b、c 三个值,输出其中最大值。
样例输入:
10 20 30
样例输出:
30

解题思路:
说实在话,这一题有很多方法可以解决。如果用 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;
}本地测试结果如下图:
0.0分
25 人评分
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<iostream> using namespace std; int main() { int a,b,c; while (cin >> a >> b >> c) { cout<<(a > b ? (a > c ? a : c) : (b > c ? b : c))<<endl; } return 0; }调用函数为什么编译错误 #include<iostream> using namespace std; max(int a,int b) { int z; if(a<b) z=b; else z=a; return z; } int main() { int a,b,c,t; cin>>a>>b>>c; t=max(max(a,b),c); cout<<t; return 0; }#include<iostream> using namespace std; int main() { int A ,B,C; cin>>A>>B>>C; if(A>B) { if(A>C) cout<<A<<endl; else cout<<C<<endl; } else { if(B>C) cout<<B<<endl; else cout<<C<<endl; } return 0; } 为什么这个编译错误啊?求解int a,b,c,t; scanf("%d%d%d", &a, &b, &c); t=a>b?a:b; t=t>c?t:c; printf("max=%d\n",t); 为什么这个不行?