习题 6.20 用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。n个整数在主函数中输入,最后在主函数中输出。
此题与19题思想一致,可以参考6.19的注释。
代码:
#include<iostream>
using namespace std;
int main()
{
int arr[20];
int** p;
int* a[20];
int n,i,t;
void func(int **,int);
cout << "请输入n:" << endl;
cin >> n;
for (i = 0; i != n; ++i)
{
a[i] = &arr[i];
}
cout << "请输入要排序的" << n << "个整数:" << endl;
for (i = 0; i != n; ++i)
{
cin >> *a[i];
}
p = a;
func(p,n);
cout << "排序好为:" << endl;
for (i = 0,t = 0; i != n; ++i)
{
cout << *a[i]<<" ";
++t;
if (t % 5 == 0)
{
cout << endl;
}
}
/*cout << endl; 数组arr不受变化
for (i = 0; i != n; ++i)
{
cout << arr[i];
}*/
return 0;
}
void func(int **p,int n)
{
int i,j;
int *temp;
for (i = 0; i != n - 1; ++i)
{
for (j = i + 1; j != n; ++j)
{
if (**(p + i) > **(p + j))
{
temp = *(p + i);
*(p + i) = *(p + j);
*(p + j) = temp;
}
}
}
}