伪君子


私信TA

用户名:lbj

访问量:92952

签 名:

我觉得吧,能实现就好^_^

等  级
排  名 46
经  验 12169
参赛次数 0
文章发表 23
年  龄 20
在职情况 学生
学  校 山西工程技术学院
专  业

  自我简介:

个人博客:https://lbjheiheihei.xyz 微信公众号:伪君子的梦呓


题目:


输入 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

 

0.0分

38 人评分

  评论区

#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;
}
2020-02-05 13:47:12
调用函数为什么编译错误
#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;
}
2020-01-26 12:28:28
#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;
 } 
为什么这个编译错误啊?求解
2020-01-23 22:35:47
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);

为什么这个不行?
2020-01-18 21:30:52
#include<Stdio.h>
int main()
{
	int a,b,c,max;
	printf("请输入三个数:\n",a,b,c);
	scanf("%d%d%d",&a,&b,&c);
	if(a>b)
	max=a;
	else 
	max=b;
	if(c>max)
	max=c;
	printf("%d",max);
	return 0;
}
2019-12-17 22:09:30
emmmm,之前用这个不行呀
2019-08-08 09:30:16
小于不行啊
2019-07-24 16:28:42