编写一个程序,用同一个函数名对n个数从小到大排序,数据类型可以是整型,单精度型,双精度型,用函数重载实现。
#include<iostream>
using namespace std;
//整型
inline int sort(int a[],int n){
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1;j++){
if(a[j]>a[j+1]){
int temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int i=0;i<n;i++){
cout << a[i] << " " ;
}
}
//单精度型
inline float sort(float a[],int n){
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1;j++){
if(a[j]>a[j+1]){
float temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int i=0;i<n;i++){
cout << a[i] << " " ;
}
}
//双精度型
inline double sort(double a[],double n){
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1;j++){
if(a[j]>a[j+1]){
double temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int i=0;i<n;i++){
cout << a[i] << " ";
}
}
int main(){
/*对n个数从小到大排序,
数据类型包括整型、单精度型,双精度型 用函数重载实现*/
// cout << "请输入数的个数: " << endl;
// int n;
// cin >> n;
// int a[n];
// for(int i=0;i<n;i++) cin>>a[i];
// cout<< "排序后:\n";
// sort(a,n);
//
// int m;
// cout << "请输入数的个数: " << endl;
// cin>>m;
// float b[m];
// for(int i=0;i<m;i++) cin>>b[i];
// cout<< "排序后:\n";
// sort(b,m);
int z;
cout << "请输入数的个数: " << endl;
cin>> z;
double c[z];
for(int i=0;i<z;i++) cin>>c[i];
cout<< "排序后:\n";
sort(c,z);
}
使用模板:
#include<iostream>
using namespace std;
//函数模板
template<typename T>
T sort(T a[],int n){
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1;j++){
if(a[j]>a[j+1]){
T temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(int i=0;i<n;i++){
cout << a[i] << " " ;
}
}
int main(){
/*对n个数从小到大排序,
数据类型包括整型、单精度型,双精度型 用函数重载实现*/
cout << "请输入数的个数: " << endl;
int n;
cin >> n;
int a[n];
for(int i=0;i<n;i++) cin>>a[i];
cout<< "排序后:\n";
sort(a,n);
}
一个样例