之前学了冒泡排序和自定义函数,近日突发奇想将二者结合起来以此便于修改和调用,期间虽然遇到了重重阻碍,但最终在高人指点下还是完成了我的垃圾代码如下:
#include<iostream>
using namespace std;
void MaoPao(int n, int a[]) {//自定义冒泡排序的函数
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (a[j] > a[j + 1]) {
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
}
//return a[n];
}
int main() {
int n;
cout << "请输入总计需要排列的数字的数量为:";
cin >> n;
int a[100000] = {0};
cout << "输入需要排列的数字(用空格隔开):";
for (int i = 0; i < n; i++) {
cin >> a[i];
}
cout << "从小到大依次为:";
MaoPao(n, a);
for (int i = 0; i < n; i++) {
cout << a[i]<<' ';
}
return 0;
}
今日反思:
在函数中对数组进行处理时,不需要用"arr[n]"这样的形式,只需要用“arr”就行,否则报错.
在自定义函数中用void或int ——return 的格式都会对实际参数造成影响,究其原因是因为:在调用函数时,若实参是数组名, 它与对应形参之间的数据传递方式是地址传递