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;
}
Made with Slides.com