求教,自定义的冒泡排序函数不能给排序
c吧
全部回复
仅看楼主
level 4
#include<iostream>
using namespace std;
void ase_sort(int* arr,int len)//排序函数
{
for (int i = 0; i < len - 1; i++)//len-1,每个数两两对比,自己不和自己对比,所以总共要比的轮数为len-1
{
for (int j = 0; j < len - i - 1; j++)//每轮比完都会冒出一个数(最大或最小即比完了的数),具体哪一轮比较需-轮数-1,-1是不和自己比较
{
if (arr[j] < arr[j + 1])
{
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
请教一下为什么我定义的排序函数,不能给数组排序呢?不是传入了数组的首地址吗?
}
}
}
int main() {
int arr[10];
cout << "请输入10个数字:" << endl;
for (int i = 0; i < 10; i++)
{
//int a;
cin >> arr[i];
}
cout << "交换前:" << endl;
for (int i = 0; i < 10; i++)
{
cout << arr[i] << " ";
}
ase_sort(arr, sizeof(arr)/arr[0]);
cout << "交换后:" << endl;
cout << "——————————————————" << endl;
for (int i = 0; i < 10; i++)
{
cout << arr[i] << " ";
}
}
2022年12月20日 08点12分 1
level 10
具体传入的长度先在main里求出来了再当参数传进去
int len = sizeof(arr) / sizeof(arr[0])
使用前先 cout 看看 len 对不对,不然容易出错。
2022年12月21日 02点12分 2
1