C/C++基础(自用)-02

函数

定义

函数类型 函数名(形参列表)
	{
   函数体}

说明

  • 函数名需符合标识符的命名规则,一般体现函数的功能
  • 形参是函数接受调用着像函数传值的主要途径
    • 形参形式
      • 类型 形参1,类型 形参2,....,类型 形参n
    • 定义时应分别给出每一个形参的类型
    • 有多个形参,用逗号隔开,也可以没有形参
  • 函数体由语句、分程序组成
    • 函数体中不允许再嵌套定义函数
  • 函数的类型就是函数返回值的数据类型
    • 函数通过return语句返回一个值给调用它的函数
    • 函数返回值的类型与函数类型最好一致。若不一致,转换为函数的类型。
#include<iostream>
using namespace std; //使用std命名空间
int f(int x)
{
   
	float b = x + 3.5;
	return b;
}
void main()
{
   
	cout << f(2) << endl;   //5,转化函数的int形
}

问题:编写函数,输出以“*”组成的两个金字塔形状,共五层

#include<iostream>
#include <iomanip> //标识setw()
using namespace std; //使用std命名空间
void pic()
{
   
	for (int i = 0; i < 5; i++)
	{
   
		cout << setw(10 - i);
		for (int j = 0; j < 2*i+1; j++)
		{
   
			cout << "*";
		}
		cout << endl;
	}
	return;
}
void main()
{
   
	pic(); //这里的调用是语句,无返回值
	pic();
	system("pause");
}

注:函数类型为void,函数可以没有返回值。
在这里插入图片描述

函数调用

函数名(实参列表)

问题:求整型中a,d,c中最大的数字

#include<iostream>
#include <iomanip>
using namespace std; //使用std命名空间
int getmax(int x,int y)
{
   
	int z;
	if (x > y)
		z = x;
	else
		z = y;
	return z;
}
void main()
{
   
	int a, b, c, m, n;
	cin >> a >> b >> c;
	m = getmax(a, b); //实参与函数定义时形参个数类型次序要一一对应 这里的调用形式是表达式 有返回值
	n = getmax(m, c);
	cout << n << endl;
	system("pause");
}

函数调用与返回过程

在这里插入图片描述

函数嵌套调用

问题:求正整数m,n的最大公约数和最小公倍数

#include<iostream>
#include <iomanip>
using namespace std; //使用std命名空间
int gcd(int x,int y)  //最大公因数
{
   
	while (int r = x%y)
	{
   
		x = y;
		y = r;
	}
	return y;
}
int sct(int m, int n) //最小公倍数
{
   
	return(m * n / gcd(m, n)); //函数嵌套
}
void main()
{
   
	int m, n;
	cin >> m >> n;
	if (n>m)
	{
   
		int t = m;
		m = n;
		n = t;
	}
	cout << gcd(m,n) << endl;
	cout << sct(m,n) << endl;
	system("pause");
}

函数嵌套调用与返回过程

在这里插入图片描述

函数说明

如果函数定义在调用之后,必须要对函数进行说明

函数类型 函数名(形参列表)

函数之间

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值