此为案例。
案例目的:
封装一个函数,利用冒泡排序,实现对一个整型数组的升序排列。
#include<iostream>
using namespace std;
void hs1()
{
int sz[10] = { 2,1,4,3,5,7,6,8,9,10 };
for (int a = 0; a < 10 - 1; a++)
{
for (int b = 0; b < 10 - a - 1; b++)
{
if (sz[a] > sz[a + 1])
{
int ling = sz[a];
sz[a] = sz[a + 1];
sz[a + 1] = ling;
}
}
}
for (int a = 0; a < 10; a++)
{
cout << sz[a] << endl;
}
}
int main()
{
//1、创建数组 2、创建函数,实现冒泡排序 3、输出排序后的数组
hs1();
system("pause");
return 0;
}
此为将所有代码都放在函数中的代码,但如果我们将数组的定义放在main函数中,函数中值放冒泡排序的代码,该怎么去敲代码呢?
#include<iostream>
using namespace std;
//第一个参数为地址,做地址传递,第二个参数为数组长度
void hs1(int* zz,int a)
{
for (int a1 = 0; a1 < a - 1; a1++)
{
for (int b1 = 0; b1 < a - a1 - 1; b1++)
{
if (zz[b1] > zz[b1 + 1])
{
int ling = zz[b1];
zz[b1] = zz[b1 + 1];
zz[b1 + 1] = ling;
}
}
}
}
void hs2(int* zz, int b)
{
for (int a2 = 0; a2 < b; a2++)
{
cout << zz[a2] << endl;
}
}
int main()
{
//1、创建数组
int sz[10] = { 2,1,4,3,5,7,6,8,9,10 };
//数组长度
int szcd = sizeof(sz) / sizeof(sz[0]);
//2、创建函数,引用函数实现冒泡排序
hs1(sz, szcd);
//3、输出排序后的数组
hs2(sz, szcd);
system("pause");
return 0;
}
在传递参数时,int* zz 传的是地址,可以改变实参。