C++中的函数
什么是函数
一个函数就是功能,也就是可以做的事情
使用形式:函数名称()
rand() //随机函数
函数的定义
自定义函数
返回值类型 函数名称(参数列表){
函数体
}
返回值:函数运算的结果的类型
函数名称:函数的名字
参数:输入进函数的值
定义一个输出三个“*”号的函数,并尝试调用
#include <iostream>
using namespace std;
void show(){ //定义show函数
cout << "***";
}
int main(){
show(); //调用show函数
return 0;
}
如果想要输出n个*,怎么办?
函数的参数
函数参数是一个函数的输入,用于将值传入到参数中
返回值类型 函数名称(参数1,参数2,...,参数n){
函数体
}
在定义函数时,在括号中添加需要的形参,每个参数之间用逗号隔开
定义一个函数,输出n个“*”
#include <iostream>
using namespace std;
void show(int n){
for (int i = 0 ; i <= n;i++){
cout << "*";
}
}
int main(){
show(5);
return 0;
}
在函数定义时,使用的参数叫做形参
在函数调用时,使用的参数叫做实参
#include <iostream>
using namespace std;
void show(int n){ //定义show函数,参数为形参
for (int i = 0 ; i <= n;i++){
cout << "*";
}
cout << endl;
}
int main(){
show(5); //5为实参
show(6); //6为实参
return 0;
}
函数的返回值
定义一个求两个整数最大值的函数,利用它求出2个整数的最大值
由于这个函数最终运算出来有结果,因此需要定义函数返回值,
#include <iostream>
using namespace std;
int max(int x,int y){ //一定要提供返回值类型
int max;
if (x > y)
max = x;
else
max = y;
return max;
}
int main(){
int a = max(4,5); //调用函数
cout << a << endl;
}
注意:
- 在函数中使用return关键字来返回结果
- 如果函数中没有return关键字,则函数定义的返回值填void
- 结果的类型要和返回值定义的类型一致
综合练习
编写一个函数,判断输入的字符是否是数字,如果是数字,则返回yes,否则返回no
#include <iostream>
using namespace std;
int is_number(char a){
if (a >= 48 && a <= 57){
return 1;
}else
return 0;
}
int main(){
char a;
cin >> a;
if (is_number(a)){
cout << "是数字" << endl;
}else
cout << "不是数字" << endl;
return 0;
}
Answer
一个n位超级素数是指一个n位正整数,它的前1位,前2位,......,前n位均为素数,例如,733是个3位超级素数,编写程序,输出全部的3位超级素数
#include <iostream>
using namespace std;
//判断是否是素数
bool isPrime(int n){
if (n == 0){ //如果是0,直接判断为不是素数
return false;
}
for (int i = 2;i < n; i++){
if (n % i == 0){ //如果发现有能被整除的,说明不是素数
return false;
}
}
return true;
}
//判断是否是超级素数
bool superPrime(int n){
while (n>0){ //如果n大于0就一直可以进行细分
if (isPrime(n%10)){
n = n / 10;
}else
return false;
}
return true;
}
int main(){
for (int i = 100; i < 1000; i++){
if (superPrime(i))
cout << i << " ";
}
return 0;
}
Answer
运用自定义图形输出图形,运行时输入几个数,第1个数,表示行数,后面的数表示每行的“*”号的个数。如输入3 4 7 12,其中3表示一共有3行,4表示第1行中“*”号的个数,7表示第2行中“*”号的个数,12表示第3行中“*”号的个数
#include <iostream>
using namespace std;
void show(int n){
int i;
for (i = 1;i <= n;i++){
cout << "*";
}
cout << endl;
}
int main(){
int a[10]={0};
int n;
int hang;
cin >> n;
cin >> hang;
while (n != 0 ){
a[n] = hang;
cin >> n;
cin >> hang;
}
for (int i = 0;i<= 9;i++){
cout << a[i] << endl;
}
for (int i = 1;i<= 9;i++){
show(a[i]);
}
return 0;
}
Level2_1_C++中的函数
By yang he
Level2_1_C++中的函数
- 205