主题:我们一起讨论一个具体问题!
有一个问题是这样的:编一个程序,用同一个函数名对5个数据进行从小到大排序,数据类型可以是整型、长整型、浮点型。用重载函数实现。
我编一个程序,但是运行不对,总是会产生溢出,但是我又无法找出病症所在,所以在这里提出来和大家讨论,小弟是新入门的菜鸟,愿意多听去高手的意见。(附代码)
#include<iostream>
using namespace std;
void sort(int s[])//对整型数据进行排序;
{
int i,j,temp;
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
if(s[j]>s[j+1]){ temp=s[j];s[j]=s[j+1];s[j+1]=temp;}
cout<<"the sorted int statics are:"<<endl;//输出排好序的数据;
for(i=0;i<5;i++)
cout<<s[i]<<" ";
cout<<endl<<endl;
}
void sort(long s[])//对长整型数据进行排序;
{
int i,j;
long temp;
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
if(s[j]>s[j+1]){ temp=s[j];s[j]=s[j+1];s[j+1]=temp;}
cout<<"the sorted long statics are:"<<endl;//输出排好序的数据;
for(i=0;i<5;i++)
cout<<s[i]<<" ";
cout<<endl<<endl;
}
void sort(float s[])//对浮点型数据进行排序;
{
int i,j;
float temp;
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
if(s[j]>s[j+1]){ temp=s[j];s[j]=s[j+1];s[j+1]=temp;}
cout<<"the sorted float statics are:"<<endl;//输出排好序的数据
for(i=0;i<5;i++)
cout<<s[i]<<" ";
cout<<endl<<endl;
}
int main()
{
int a[5];
cout<<"please input the int statics:"<<endl;
for(int i=0;i<5;i++)
{cout<<"int["<<i<<"]=";
scanf("%d",&a[i]);
}//输入整型数据’
long b[5];
cout<<"please input the long statics:"<<endl;
for( i=0;i<5;i++)
{cout<<"long["<<i<<"]=";
scanf("%d",&b[i]);
}//输入长整型数据;
float c[5];
cout<<"please input the float statics:"<<endl;
for( i=0;i<5;i++)
{cout<<"float["<<i<<"]=";
scanf("%d",&c[i]);
}//输入浮点型数据
sort(a);
sort(b);
sort(c);
return 0;
}
我编一个程序,但是运行不对,总是会产生溢出,但是我又无法找出病症所在,所以在这里提出来和大家讨论,小弟是新入门的菜鸟,愿意多听去高手的意见。(附代码)
#include<iostream>
using namespace std;
void sort(int s[])//对整型数据进行排序;
{
int i,j,temp;
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
if(s[j]>s[j+1]){ temp=s[j];s[j]=s[j+1];s[j+1]=temp;}
cout<<"the sorted int statics are:"<<endl;//输出排好序的数据;
for(i=0;i<5;i++)
cout<<s[i]<<" ";
cout<<endl<<endl;
}
void sort(long s[])//对长整型数据进行排序;
{
int i,j;
long temp;
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
if(s[j]>s[j+1]){ temp=s[j];s[j]=s[j+1];s[j+1]=temp;}
cout<<"the sorted long statics are:"<<endl;//输出排好序的数据;
for(i=0;i<5;i++)
cout<<s[i]<<" ";
cout<<endl<<endl;
}
void sort(float s[])//对浮点型数据进行排序;
{
int i,j;
float temp;
for(i=0;i<5;i++)
for(j=0;j<5-i;j++)
if(s[j]>s[j+1]){ temp=s[j];s[j]=s[j+1];s[j+1]=temp;}
cout<<"the sorted float statics are:"<<endl;//输出排好序的数据
for(i=0;i<5;i++)
cout<<s[i]<<" ";
cout<<endl<<endl;
}
int main()
{
int a[5];
cout<<"please input the int statics:"<<endl;
for(int i=0;i<5;i++)
{cout<<"int["<<i<<"]=";
scanf("%d",&a[i]);
}//输入整型数据’
long b[5];
cout<<"please input the long statics:"<<endl;
for( i=0;i<5;i++)
{cout<<"long["<<i<<"]=";
scanf("%d",&b[i]);
}//输入长整型数据;
float c[5];
cout<<"please input the float statics:"<<endl;
for( i=0;i<5;i++)
{cout<<"float["<<i<<"]=";
scanf("%d",&c[i]);
}//输入浮点型数据
sort(a);
sort(b);
sort(c);
return 0;
}