描述
找出3个数中的最大值。
输入
随机输入3个整数
输出
输出这3个整数的最大值
输入样例 1
15 7 28
输出样例 1
28
输入样例 2
57 68 45
输出样例 2
68
①最简单:if语句(选择结构)
#include
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
if (a > b)
{
if (a > c)cout << a;
else cout << c;
}
else //a c) cout << b;
else cout << c;
}
return 0;
}
②运用条件运算符( ? :)
#include
using namespace std;
int main()
{
int a, b, c;
cin >> a >> b >> c;
int max;
max = (a > b) ? a : b;
max = (max > c) ? max : c;
cout << max;
return 0;
}
条件运算符要求有3个操作对象,称为三目(元)运算符,它是C++中唯一的一个三目运算符。
条件表达式的一般形式:表达式1?表达式2:表达式3
条件运算符的执行顺序是:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。
③函数的调用
#include
using namespace std;
int max(int, int, int); //对函数的外部声明,作用域是整个文件
int main()
{
int a, b, c;
cin >> a >> b >> c;
cout << max(a,b,c); //函数的调用
return 0;
}
int max(int a,int b,int c) //函数的定义
{
int max;
if (a > b)
{
if (a > c) max=a ;
else max=c;
}
else
{
if (b > c)max=b;
else max=c;
}
return max;
//int max;
//max = (a > b) ? a : b;
//max = (max > c) ? max : c;
//return max;
}
#include
using namespace std;
void max();
int main()
{
int a, b, c;
max();
return 0;
}
void max()
{
int a, b, c;
cin >> a>>b>>c;
int max;
if (a > b)
{
if (a > c) max=a ;
else max=c;
}
else
{
if (b > c)max=b;
else max=c;
}
cout << max;
//int max;
//max = (a > b) ? a : b;
//max = (max > c) ? max : c;
//cout<
按理说是可以用定义无参函数(如上)来运行,但是个人感觉没必要;
问题点:
1、在定义有参函数时,必须在函数首部指定形参的类型。
2、在调用函数时,大多数情况下,函数是带参数的,主调函数和被调用函数之间有数据传递关系。
3、无参函数。调用函数时不必给出参数,主调函数并不将数据传送给被调用函数,一般不带回函数值(即无返回值)。
4、如果被调用函数的定义出现在主调函数之前,可以不必加以声明,但在程序趋向复杂化后,这种做法会使程序可读性较差。
5、函数声明的位置可以在调用函数所在的函数中,也可以在函数之外(如本文代码所示)。如果函数声明放在函数的外部,在所有函数定义之前(这就是对函数的外部声明),则在各个主调函数中不必对所调用的函数再作声明。
6、函数声明(也称函数原型)中可以不写形参名,而只写形参的类型。
函数原型的一般形式为
(1)函数类型 函数名 (参数类型1,参数类型 2,···);
(2)函数类型 函数名 (参数类型1 参数名1, 参数类型2 参数名2,···)
第(1)种形式是基本的形式。为了便于阅读程序,也允许在函数原型中加上参数名,就成了第(2)中形式。但编译系统并不检查参数名,因此参数名是什么都无所谓。