输入10个数字,排列大小后由小到大输出,谁能帮忙看看?
main()
{
int a[11];
int i,j,t;
printf("input 10 numbers :\n");
for(i=1;i<11;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=1;j<=9;j++)
for(i=1;i<=10-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("the sorted numbers :\n");
for(i=1;i<11;i++)
printf("%d",a[i]);
}
这个是瘫浩强 C语言程序设计 125页中间的题,输入没问题
但是不明白这里 for(i=1;i<=10-j;i++) 到底是什么意思
这几个循环还是没看懂,,55555
谁能详细点解释阿。。超级感谢+在线等待
加我也可以
QQ 136825
msn bluebent@msn.com
问题点数:5、回复次数:11Top
1 楼adintr(www.adintr.com)(风流总被雨打风吹去)回复于 2006-03-02 15:43:11 得分 0
冒泡排序,看数据结构Top
2 楼BlueBent()回复于 2006-03-02 15:45:18 得分 0
楼上的请问有数据结构电子书么?Top
3 楼adintr(www.adintr.com)(风流总被雨打风吹去)回复于 2006-03-02 15:48:21 得分 0
网上一找一大堆:
http://www.chsegang.com.cn/firefox/datastruct/Sorting/04.htm
http://www.95678.cn/diannaoketang/xinshiji/shujujiegou/090201.asp.htmTop
4 楼terryjwf(开大奔的帅哥)回复于 2006-03-02 17:29:19 得分 1
http://community.csdn.net/Expert/topic/4440/4440723.xml?temp=.4413874
我的拙作,请笑纳!Top
5 楼keychar(初级程序员)回复于 2006-03-02 18:24:56 得分 0
最大的往后放,所以要比较的越来越少!Top
6 楼loveliu0429(lovelipei)回复于 2006-03-02 18:47:40 得分 0
最基本的冒泡
每一次都把大的往后放Top
7 楼xj_jiangg(xj_jiangg)回复于 2006-03-02 19:54:28 得分 0
C++如果熟悉的话可以做的很优美Top
8 楼xj_jiangg(xj_jiangg)回复于 2006-03-02 20:12:21 得分 1
贴一个,为什么大家不用c++提供的范型算法的东东呢?
#include <iostream>
#include <string>
#include <iomanip>
#include <iterator>
#include <vector>
using namespace std;
int main(void) {
istream_iterator<int> in(cin);
istream_iterator<int> eof;
vector<int> a;
copy(in,eof,back_inserter(a));
sort(a.begin(),a.end());
copy(a.begin(),a.end(),ostream_iterator<int>(cout," "));
}Top
9 楼zhanxiang(JackieSky)回复于 2006-03-02 21:01:05 得分 1
冒泡排序法:像气泡一样,轻的(小数)往上冒,重的(大数)往下沉!
每一次循环都得出一个最大的数,并放在最后,下次循环就不需要再参与比较了!
比如,第1次循环,第一个数和后面的9个数比较,符合要求的就交换,共比较(10-1)次;
第2次循环,第一个数和后面的8个数比较,符合要求的就交换,共比较(10-2)次;
……
所以要比较的数越来越少!Top
10 楼jiazhen(go go go)回复于 2006-03-02 21:48:49 得分 1
for(i=1;i<=10-j;i++) 到底是什么意思
这个地方就是从第一个数开始,让它分别和后面的数做比较如果大于后一位就换位;
具体过程如下,若输入为10 9 8 7 6 5 4 3 2 1则有:
10 9 8 7 6 5 4 3 2 1
9 10 8 7 6 5 4 3 2 1
9 8 10 7 6 5 4 3 2 1
9 8 7 10 6 5 4 3 2 1
9 8 7 6 10 5 4 3 2 1
.
.
.
9 8 7 6 5 4 3 2 1 10
8 9 7 6 5 4 3 2 1 10
.
.
8 7 6 5 4 3 2 1 9 10
.
1 2 3 4 5 6 7 8 9 10
Top
11 楼wcg_jishuo()回复于 2006-03-02 21:52:45 得分 1
这个你要自己慢慢体会
大家初学的时候都跟你一样,
所以说要自己想,想不出来,就跟踪进去Top




