分别用冒泡法(升序)、选择法(降序)、擂台法(升序)编写3个一维数组进行排序的函数

SunShine_Mike 2014-05-26 12:12:22
分别用冒泡法(升序)、选择法(降序)、擂台法(升序)编写3个一维数组进行排序的函数,函数名为sort1()、sort2()、sort3()。再定义一个输出元素值的函数print()。在主函数中定义一维整型数组 a[N](N=10),用键盘输入10个整数给a[N]数组。依次调用sort1()、print()、sort2、print()、sort3、print(),进行升序、降序、升序排列的操作,并输出每次排序後的结果。

老实说,我对 编写函数时的参数传送 不是很掌握,所以下面我的程序,不知道如何正确给参数?麻烦大家帮我看看?


#include<iostream.h>
#define N 10

void sort1()
{
int i,j,temp=0;
for(i=0;i<N-1;i++)
for(j=0;j<N-i-1;j++)
{
if(a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
}
}

void sort2()
{
int i,j,temp=0];
for(i=0;i<N-1;i++)
for(j=i+1;j<N;j++)
{
if(a[i]>a[j])
{temp=a[i];a[i]=a[j];a[j]=temp;}
}
}

void sort3()
{
int i,j,temp=0;
for(i=0;i<N-1;i++)
{
int k=i;
for(j=j+1;j<N;j++)
{
if(a[k]>a[j])
k=j;
if(k>j)
{temp=a[i];a[i]=a[k];a[k]=temp;}
}
}

}


void print()
{
cout<<"排序后的a[N]是:"<<endl;
int i;
for(i=0;i<N-1;i++)
{
cout<<a[i]<<endl;
}
}


void main()
{
int a[N];
cout<<"请对a[N]赋值:"<<endl;
int i;
for(i=0;i<10;i++)
{cin>>a[i];}

cout<<"冒泡法:"<<endl;
void sort1();
void print();
cout<<"选择法:"<<endl;
void sort2();
void print();
cout<<"擂台法:"<<endl;
void sort3();
void print();



}
...全文
1154 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigfog 2014-06-03
  • 打赏
  • 举报
回复
楼上说对了, 或者 直接将 int a[N];定义放在外面,作为全局变量,那其他的就不需要修改了
dataxdata 2014-06-03
  • 打赏
  • 举报
回复
数组和长度要作为参数传递进去,这样定义: void sort1(int a[], int N) ..... 调用的时候这样: #define N 10 ...... int a[N]; ....... sort1(a, N); sort2(a, N); sort3(a, N); print(a, N);

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧