C++程序设计 (第三版) 谭浩强 习题6.20
习题 6.20 用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。整数和n在主函数中输入。最后在主函数中输出。
IDE工具:VS2010
Note: 使用不同的IDE工具可能有部分差异。
代码块
#include <iostream>
using namespace std;
const int N = 5;
void initialNum(int ***num, int n){
*num = new int *[n];
for(int i = 0; i < n; i++){
(*num)[i] = new int[1];
}
}
void inputNum(int **num, int n){
cout<<"Enter "<<n<<" numbers:"<<endl;
for(int i = 0; i < n; i++){
cout<<"Enter No."<<i + 1<<" number: ";
cin>>num[i][0];
}
cout<<endl;
}
void outputNum(int **num, int n){
for(int i = 0; i < n; i++){
cout<<num[i][0]<<" ";
}
cout<<endl;
}
void ascendingSort(int **num, int n){
int temp;
for(int i = 0; i < n; i++){
for(int j = i + 1; j < n; j++){
if(num[i][0] > num[j][0]){
temp = num[i][0];
num[i][0] = num[j][0];
num[j][0] = temp;
}
}
}
}
void freeNum(int ***num, int n){
for(int i = 0; i < n; i++){
delete((*num)[i]);
}
delete(*num);
}
int main(){
int **num = NULL;
initialNum(&num, N);
inputNum(num, N);
cout<<"Original Number: ";
outputNum(num, N);
ascendingSort(num, N);
cout<<"After Sort: ";
outputNum(num, N);
freeNum(&num, N);
system("pause");
return 0;
}