各位大侠!这个程序该怎么写!

huyangg 2009-11-27 03:40:09
1、数组排序
从键盘读入若干整数,将他们按由低到高排序输出。
要求:1) 用一个数组存放各个整数
2) 在主函数main()中实现数据的输入和输出操作,并用一个函数实现对数组元素的排序操作。
3) 排序函数调用另一个swap()实现两个数组元素的交换。
可以使用指针、引用两种方式实现函数参数的传递:
swap(int *pa,int *pb);
swap(int & pa,int & pb);

不甚感激!
...全文
166 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ericming200409 2009-11-27
  • 打赏
  • 举报
回复
同理,把几个int 改成char就行了,当然size 还必须是int
starix_cai 2009-11-27
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

int size;

void swap(int* px, int* py)
{
int temp = *px;
*px = *py;
*py = temp;
}
void swap(int& rx, int& ry)
{
int temp = rx;
rx = ry;
ry = temp;
}

void bubble_sort(int* array, int size)
{
for(int i = 1; i < size; i++)
{
int j = i;
while(array[j] < array[j - 1] && j > 0)
{
//swap(array[j], array[j - 1]);
swap(array + j, array + j - 1);
j--;
}
}
}

int main()
{
cout<<"Please input array size:"<<endl;
cin>>size;
cout<<"Please input "<<size<<" numbers"<<endl;
int ia[size];
for(int i = 0; i < size; i++)
cin>>ia[i];

bubble_sort(ia, size);

for(int i = 0; i < size; i++)
cout<<ia[i]<<'\t';
cout<<endl;
}
huyangg 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 ericming200409 的回复:]
C/C++ code
#include<iostream>usingnamespace std;void swap(int*pa,int*pb);void sort(int a[],int size) ;int main()
{
cout<<"please input 10 intengers:\n";int a[10];for(int i=0;i<10;i++)
{
cin>>a[i];
}
sort(a,10);
cout<<"the sorted are as following:\n";for(int i=0;i<10;i++)
{
cout<<a[i]<<"";
}return0;
}void swap(int*pa,int*pb)
{int tmp=*pa;*pa=*pb;*pb=tmp;
}void sort(int a[],int size)//size为数组大小,即要排序的元素个数{//插入排序for(int i=2;i<size;i++)
{int key=a[i];int n=i;for(int j=i-1;j>=0;j--)
{if(key<a[j])
{
swap(&a[j],&a[n]);
n--;
}elsebreak;
}
}
}
练习了下
[/Quote]
多谢! 我刚调试运行了一下,没有问题。
如果是字符数组又应该怎么改一下?
如果是字符串数组又应该怎么改 ?
多谢!
ArmStronger 2009-11-27
  • 打赏
  • 举报
回复
不知道这样是否满足你的要求:
#include<iostream>
using namespace std;
void swap(int *pa,int *pb)
{
int *temp=pa;
pa=pb;
pb=temp;
}

void _sort(int a[],int len)
{
int i,j;
int L=len;
for (i=0;i<L;i++)
{
for (j=i+1;j<L;j++)
{
if (a[i]>a[j])
swap(&a[i],&a[j]);
}
}
}

int main()
{
int i,n,data;
cout<<"输入整数的个数:";
cin>>n;
cout<<"请输入"<<n<<"个整数:"<<endl;
int *p=new int[n];
for (i=0;i<n;i++)
{
cin>>data;
p[i]=data;
}
_sort(p,n);
for (i=0;i<n;i++)
{
cout<<p[i]<<" ";
}
delete []p;

system("pause");
return 0;
}
ericming200409 2009-11-27
  • 打赏
  • 举报
回复

#include<iostream>
using namespace std;

void swap(int *pa,int *pb);
void sort(int a[],int size) ;
int main()
{
cout<<"please input 10 intengers:\n";
int a[10];
for(int i=0;i<10;i++)
{
cin>>a[i];
}
sort(a,10);
cout<<"the sorted are as following:\n";
for(int i=0;i<10;i++)
{
cout<<a[i]<<" ";
}
return 0;
}


void swap(int *pa,int *pb)
{
int tmp=*pa;
*pa=*pb;
*pb=tmp;
}

void sort(int a[],int size) //size为数组大小,即要排序的元素个数
{
//插入排序
for(int i=2;i<size;i++)
{
int key=a[i];
int n=i;
for(int j=i-1;j>=0;j--)
{
if(key<a[j])
{
swap(&a[j],&a[n]);
n--;
}
else
break;
}
}
}

练习了下
huyangg 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wavesec 的回复:]
哎。。这不是菜不菜的问题
如果自己对这个真不敢兴趣,何必呢。。把时间用在自己感兴趣的地方吧
[/Quote]
是考试题, 请大侠帮帮忙,多谢!
Wavesec 2009-11-27
  • 打赏
  • 举报
回复
哎。。这不是菜不菜的问题
如果自己对这个真不敢兴趣,何必呢。。把时间用在自己感兴趣的地方吧
huyangg 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 toroid 的回复:]
是作业贴吧?
[/Quote]
是考试题, 请大侠帮帮忙,多谢!
CCCCCCCCCCCCCCC 2009-11-27
  • 打赏
  • 举报
回复
是作业贴吧?
huyangg 2009-11-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ericming200409 的回复:]
这个不是很简单嘛,楼主如果不会就用最简单的插入排序呗
[/Quote]

老大我实在是很菜,帮帮忙! 谢谢!
ericming200409 2009-11-27
  • 打赏
  • 举报
回复
这个不是很简单嘛,楼主如果不会就用最简单的插入排序呗

64,674

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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