
急!!C++设计一个冒泡排升序的函数模板,针对不同类型的数组进行测试
3个回答
2012-05-31
展开全部
#include<iostream.h>
template<class T>
void sort(T * a,int size);
void main()
{
int i;
double a[5] = { 7.1,4.4,5.2,6.0,3.1};
sort<double>(a,5);
for(i = 0;i < 5;i++)
{
cout<<a[i]<<" "<<endl;
}
cout<<endl;
int b[5] = {7,4,5,6,3};
sort<int>(b,5);
for(i = 0;i < 5;i++)
{
cout<<b[i]<<" "<<endl;
}
return;
}
template<class T>
void sort(T * a,int size)
{
for(int i = 0;i < size;i++)
{
for(int j = 0;j < size-i-1;j++)
{
if(a[j] > a[j+1])
{
T temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
template<class T>
void sort(T * a,int size);
void main()
{
int i;
double a[5] = { 7.1,4.4,5.2,6.0,3.1};
sort<double>(a,5);
for(i = 0;i < 5;i++)
{
cout<<a[i]<<" "<<endl;
}
cout<<endl;
int b[5] = {7,4,5,6,3};
sort<int>(b,5);
for(i = 0;i < 5;i++)
{
cout<<b[i]<<" "<<endl;
}
return;
}
template<class T>
void sort(T * a,int size)
{
for(int i = 0;i < size;i++)
{
for(int j = 0;j < size-i-1;j++)
{
if(a[j] > a[j+1])
{
T temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
展开全部
/////////////////////////////////////////
// C-Free 4.1
// MinGW 3.4.5
// veket的小号
/////////////////////////////////////////
#include <iomanip>
#include <iostream>
using namespace std;
template <typename TTT>
void PopSort(TTT *p, int n)
{
int i;
int j;
TTT tmp;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(*(p+i)>*(p+j))
{
tmp = *(p+i);
*(p+i) = *(p+j);
*(p+j) = tmp;
}
}
}
}
int main()
{
int a[5] = {8, 2, 5, 7, 1};
double b[5] = {8.3, 112.95, 53.473, 0.76, 31.0};
int i;
cout << "int array a before PopSort:\n";
for(i=0;i<5;i++)
{
cout << setw(10) << a[i];
}
PopSort(a, 5);
cout << "\n\nint array a after PopSort:\n";
for(i=0;i<5;i++)
{
cout << setw(10) << a[i];
}
cout << "\n\n\ndouble array b before PopSort:\n";
for(i=0;i<5;i++)
{
cout << setw(10) << b[i];
}
PopSort(b, 5);
cout << "\n\ndouble array b after PopSort:\n";
for(i=0;i<5;i++)
{
cout << setw(10) << b[i];
}
cout << endl;
return 0;
}
// C-Free 4.1
// MinGW 3.4.5
// veket的小号
/////////////////////////////////////////
#include <iomanip>
#include <iostream>
using namespace std;
template <typename TTT>
void PopSort(TTT *p, int n)
{
int i;
int j;
TTT tmp;
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(*(p+i)>*(p+j))
{
tmp = *(p+i);
*(p+i) = *(p+j);
*(p+j) = tmp;
}
}
}
}
int main()
{
int a[5] = {8, 2, 5, 7, 1};
double b[5] = {8.3, 112.95, 53.473, 0.76, 31.0};
int i;
cout << "int array a before PopSort:\n";
for(i=0;i<5;i++)
{
cout << setw(10) << a[i];
}
PopSort(a, 5);
cout << "\n\nint array a after PopSort:\n";
for(i=0;i<5;i++)
{
cout << setw(10) << a[i];
}
cout << "\n\n\ndouble array b before PopSort:\n";
for(i=0;i<5;i++)
{
cout << setw(10) << b[i];
}
PopSort(b, 5);
cout << "\n\ndouble array b after PopSort:\n";
for(i=0;i<5;i++)
{
cout << setw(10) << b[i];
}
cout << endl;
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#inlcude<stdio.h>
int a[10000];
int main(){
int i,j,k,m,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d',&a[i]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
if(a[i]>a[j]){
k=a[i];
a[i]=a[j];
a[j]=k;
}
for(i=1;i<=n;i++)
printf("%d",a[i]);
}
return 0;
}
int a[10000];
int main(){
int i,j,k,m,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d',&a[i]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++){
if(a[i]>a[j]){
k=a[i];
a[i]=a[j];
a[j]=k;
}
for(i=1;i<=n;i++)
printf("%d",a[i]);
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询