练习:
写一个函数,计算两个整数中的较大值,并返回
#include<stdio.h>
int getBigger(int n, int j, int i){
return n > j ? n : j;
}
int main(){
int rst = getBigger(10,20);
printf("%d", rst);
return 0;
}
结果如下:
写一个函数,计算三个整数中的最大值,并返回
#include<stdio.h>
int getBigger(int n, int j, int i){
if(n > j){
if(n > i){
return n;
}else {
return i;
}
}else if(j > i){
return j;
}else{
return i;
}
}
int main(){
int rst = getBigger(10,20,30);
printf("%d", rst);
return 0;
}
结果如下:
第二个代码中很明显的可以将if优化掉,优化后结果:
#include<stdio.h>
int getBigger(int n, int j, int i){
return (n > j ? n : j) > i ? (n > j ? n : j) : i;
}
int main(){
int rst = getBigger(10,20,30);
printf("%d", rst);
return 0;
}
结果一样:
三个要素:
(1)功能:做什么用?
(2)参数:我提供什么?
形参:定义函数时候,()中的内容
实参:调用函数时候,()中的内容
(3)返回值:他会给我什么?
return用来设置函数的返回值。
要点:与定义函数时的类型保持一致。
定义函数的格式:
返回值类型|或者是void函数名(形参){
return返回值
}
例如下列代码中:
#include<stdio.h>
int f(){
printf("a");
printf("b");
printf("c");
return 10 * 5;
}
int main(){
int rst = f();
printf("%d", rst);
return(0);
}
此时会运行上述所有数值:
但将其位置改变后:
#include<stdio.h>
int f(){
printf("a");
printf("b");
return 10 * 5;
printf("c");
}
int main(){
int rst = f();
printf("%d", rst);
return(0);
}
只会运行return之前的数值:
由此可以得出return的作用:不仅仅是返回函数值,而且在return之后的代码不会被运行。
调用方式4种:
(1)作为表达式用
(2)作为语句调用
(3)作为函数的实参调用
(4)在一个函数中调用另一个函数
int getBig2(int a, int b){
if(a > b){
return a;
}else{
return b;
}
}
int getBig3(int x, int y, int z){
int k = getBig2(x, y);
return getBig2(k, z);
}
int f32(int n){
return n / 3 + 1;
}
void printfOK(){
printf("\n*************************\n");
}
int main(){
printf("%d", getBig3(1,2,3));
printfOK();
int rst = f32(10) * 20;
printf("%d", rst);
printfOK();
int rst1 = f32(f32(10));
printf("%d", rst1);
}