| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 475 人关注过本帖
标题:一道关于排序的题,请指教!
只看楼主 加入收藏
1987ctl
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2006-6-7
收藏
 问题点数:0 回复次数:1 
一道关于排序的题,请指教!
编一个程序。定义一个数组int a[10].任意输入10个数,根据冒泡法,选择法,交换法
三种的排序方式,打印出每次的排序结果,并判断是否已经排序完成。
问题补充:交换一次,输出一次。不交换不输出。

搜索更多相关主题的帖子: 指教 
2006-06-07 17:01
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
/*代楼主干三分之一(冒泡法)*/
#include<stdio.h>
#define N 10 //排序量N个
void bubbleSorting(int[],int);
main( )
{
int a[N],j;
printf("请输入%d个任意整数:\n",N);
for(j=0;j<N;j++)scanf("%d",&a[j]);
printf("排序前:");
for(j=0;j<N-1;j++)printf("%d,",a[j]);
printf("%d\n",a[j]);
bubbleSorting(a,N);
printf("\n排序后:");
for(j=0;j<N-1;j++)printf("%d,",a[j]);
printf("%d\n",a[j]);
printf("\nPress any key to continue...\n");
scanf("%*c");
}
void bubbleSorting(int ary[],int n)
{
int i,j,tmp,exFlag;
for(i=1;i<=n-1;i++)//从第1轮到第n-1轮
{ exFlag=0;
for(j=1;j<=n-i;j++)//第i轮中第j次比较与交换
if(ary[j-1]>ary[j])//若“左邻”大于“右舍”
{
exFlag=1;
tmp=ary[j-1];
ary[j-1]=ary[j];
ary[j]=tmp;
}
if(exFlag==0)break;//说明实际上已经排好序
printf("\n第%d轮后:",i);
for(j=0;j<n;j++)printf("%d ",ary[j]);
}
printf("\n");
}

[此贴子已经被作者于2006-6-8 4:41:49编辑过]


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-06-08 04:12
快速回复:一道关于排序的题,请指教!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049051 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved