level 4
贴吧用户_aK4X6XP
楼主
#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
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] << " ";
}
}