内容正文:
学科竞赛编程
教研研究院
C++
NOIP
NOI
IOI
1
一. 认识函数
“函数”可以将实现了某一
功能,并需要反复使用的代码包
装起来形成一写成一个"函数”,
那么当程序中需要使用该项功能
时,只需写一条语句,调用实现该
功能的”函数“即可。
不同程序员写不同的函数,拼起来形成一个大程序
void out _put(void) {
cout <<"Hello World!"<< endl;
return;
}
定义函数
调用函数
返回类型 函数名 ( 形参1, 形参2 ) {
函数体;
}
2.函数的定义
对函数的调用,也是一个表达式。
函数调用表达
由函数内部的 return语句决定。
调用格式为:函数名 ( 实参1, 实参2, 实参3, ... );
3.函数的调用
1. 函数的声明
函数声明的格式:
返回值类型 函数名(参1类型 参1名称, 参2类型 参2名称, ...)
一般来说函数的定义必须出现在函数调用语句之前,否则调用语句编译出错,但是若提前加入函数声明,则不会编译出错。
void output( ) {
for (int i =0; i< 12; i++) {
cout<<“*”;
}
cout<< endl;
return;
}
例1 :函数的应用(无参练习)
void fun()
{
int a,b;
cin>>a>>b;
c=a>b?a:b;
cout<<c;
}
定义函数,输入两个数,求他们的最大值,然后调用实现功能。
【过程分析】
第1步: 先定义一个自定义函数,
在该函数里定义变量完成此功 能
int main()
{
fun();
}
第2步: 在主函数里调用此函数,
实现该功能
第1步: 先定义一个自定义函数,
在该函数里定义变量完成此功 能
例2 . 函数的应用(传参练习)
(1)使用调用函数的方法找出两个整数中的最大值
【问题描述】
编写程序自定义函数实现计算两个整数中的最大值,调用该函数,并输出计算结果。
要求:自定义的最大值函数有两个形参。
【样例输入】4 6
【样例输出】6
第一步: 定义一个函数,实现传入两个整数,返回两个数中较大的数;
【过程分析】
int Max(int x,int y)
return x>y? x: y;
}
第二步: 写出主函数,声明两个整型变量x,y用于存放输入的两个数,写出输入语句,然后声明整型变量mmax用来存放调用函数的返回值,输出mmax的值。
int main(){
int x,y;
cin >> x >> y;
int mmax= Max(x, y);
cout<< mmax << endl;
return 0;
}
完整代码 :
#include<iostream>
using namespace std;
int Max(int x,int y) {
return x>y? x:y;
}
int main()
{
int x,y;
cin>>x>>y;
int mmax=Max(x,y);
cout<< mmax << endl;
return 0;
}
1 . 变量作为参数(值传递)
#include <iostream>
using namespace std;
void change(int &a, int &b){
int tmp=a;
a=b;
b=tmp;
cout<<a<<” “<<b<<endl;
return;
}
int main(){
int x,y;
cin >> x >> y;
change(x, y);
cout<<x<<" "<<y<<endl;
return 0;
}
上面代码中,我们输入3 5,就会输出5 3(换行)5 3,和上一个代码有什么区别 ?
题目分析:本题代码和上一题代码基本一样,唯一的区别就是本题代码定义函数的形参前面我们加了一个&符号,这个符号在这里我们称之为取地址,意思就是找到实参x和y在算机中的存储位置,交换他们存储的位置。
二 . 函数传递参数的方式
2. 一维数组作为参数(地址传递)
#include <iostream>
using namespace std;
int a1[4] = {4,15,6,9} ;
void set (int a[], int length) {