| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2551 人关注过本帖
标题:[求助]如何实现在一次循环下既对数字排序又可以按由小到大输出
只看楼主 加入收藏
yangafn222
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-4-11
收藏
 问题点数:0 回复次数:26 
[求助]如何实现在一次循环下既对数字排序又可以按由小到大输出
如何实现在一次循环下既对数字排序又可以按由小到大输出
搜索更多相关主题的帖子: 数字 由小到大 输出 
2007-04-25 09:50
guosheng1987
Rank: 1
等 级:新手上路
帖 子:59
专家分:0
注 册:2007-4-16
收藏
得分:0 
一次循环排序
for(j = 0;j<n;j++)
{
if(a[j]<a[j+1])
{
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
j = -1;
}
2007-04-25 09:56
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
选择法排序可以在排序中从小到大输出


另外,楼上的排序有问题。。。一个循环是不行的

[此贴子已经被作者于2007-4-25 10:03:05编辑过]


这个社会太复杂。。。
2007-04-25 10:02
yangafn222
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2007-4-11
收藏
得分:0 
thank you!!!!但是我想在一次循换下实现
2007-04-25 11:43
海蓝啸
Rank: 5Rank: 5
来 自:安徽
等 级:贵宾
威 望:17
帖 子:1611
专家分:0
注 册:2006-4-3
收藏
得分:0 
一个循环排不了序。。。

这个社会太复杂。。。
2007-04-25 12:08
福尔摩斯
Rank: 5Rank: 5
等 级:贵宾
威 望:12
帖 子:4011
专家分:370
注 册:2006-8-15
收藏
得分:0 
一次循环只能选出最小或者最大

自我放逐。。。
2007-04-25 12:40
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 

至今还没人写出一层循环的,看你能不


雁无留踪之意,水无取影之心
2007-04-25 13:16
wood1314
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-4-21
收藏
得分:0 
异想天开的想法,只有一种情况可能,原数组有序.

[此贴子已经被作者于2007-4-25 14:39:44编辑过]


2007-04-25 14:39
zy1437zy
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2007-4-25
收藏
得分:0 

#include<stdio.h>
void main()
{
void clrscr(void);
int m,i,k,a[11];
k=0;
for(i=1;i<=10;i++)
scanf("%d",&a[i]);/*输入数据*/
clrscr();
/*完成排序及输出结果*/
for(i=1;i<=10;i++)
{
if(k==10)
{
printf("%d\n",a[i-2]);
continue;
}
if(i==10)
{
i=0;
i++;k++;
}
if(a[i-1]>a[i])
{
m=a[i];
a[i]=a[i-1];
a[i-1]=m;
}

}
}
不知道是不是你想要的。
这个程序不能输出最小的数,
我没心情研究了/
呵呵 !~

2007-04-25 16:18
shuaiye
Rank: 1
等 级:新手上路
帖 子:445
专家分:0
注 册:2006-5-15
收藏
得分:0 
#include <stdio.h>
#define LEN 30
void swap(int *,int *);
int main(void){
int arr[LEN],i,;
for(i=0;i<LEN;i++)
scanf("%d",&arr[i]);
for(i=0;i+1<LEN;) {
if(arr[i]<=arr[i+1])
i++;
else{
swap(&arr[i],&arr[i+1]);
i=0;
continue;
}
}
for(i=0;i<LEN;i++)
printf("%d ",arr[i]);
printf("\n%d\n",j);
return 0;
}
void swap(int *p,int *q){
int tmp=0;
tmp=*p;
*p=*q;
*q=tmp;
return ;
}

这算算只用不一次循环。

由于工作,N久都没来了!
2007-04-25 20:53
快速回复:[求助]如何实现在一次循环下既对数字排序又可以按由小到大输出
数据加载中...
 
   



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

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