| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1175 人关注过本帖
标题:冒泡排列哪里错了。
只看楼主 加入收藏
caiyakang
Rank: 2
等 级:新手上路
威 望:5
帖 子:2111
专家分:0
注 册:2005-3-24
收藏
 问题点数:0 回复次数:11 
冒泡排列哪里错了。
#define N 10
void main()
{int a[N+1];int i,j,t;
printf("please inpute 10 number:\n");
for(i=1;i<=N;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=1;j<=N-1;j++)
  for(i=1;i<N-j;i++)
  if(a[i]>a[i+1])
  {t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("the scorted numbers:\n");
for(i=1;i<=N;i++)
printf("%d   ",a[i]);
getch();
}
如果最后一个比最后第2个小,最后一个就排不出来。
搜索更多相关主题的帖子: 排列 printf 冒泡 numbers void 
2005-08-15 16:50
swiminfire
Rank: 1
等 级:新手上路
帖 子:96
专家分:0
注 册:2005-8-11
收藏
得分:0 
#include <stdio.h>
#define  MAX 10
void main(void)
{
 int Num[MAX];
 for(int i=0;i<MAX;i++)
 {
  printf("请输入第%d个数:",i);
  scanf("%d",&Num[i]);
 }
 for(int i=0;i<MAX-1;i++)
 {
  for(int j=MAX-1;j>i;j--)
  {
   if( Num[j] > Num[j-1] )
   {
    int temp = Num[j];
    Num[j] = Num[j-1];
    Num[j-1] = temp;
   }
  }
 }
 printf("第一次排序的结果为:\n");
 for(int i=0;i<MAX;i++)
 {
  printf("%3d ",Num[i]);
 }
 printf("\n");
}

Get in first, and then word your ways out ! BY KIKI
2005-08-15 18:33
caiyakang
Rank: 2
等 级:新手上路
威 望:5
帖 子:2111
专家分:0
注 册:2005-3-24
收藏
得分:0 
。。。。。。。。。。。。

中国人的财富网:http://www..cn/
2005-08-15 18:43
caiyakang
Rank: 2
等 级:新手上路
威 望:5
帖 子:2111
专家分:0
注 册:2005-3-24
收藏
得分:0 
你的根本不能运行。

中国人的财富网:http://www..cn/
2005-08-15 18:46
swk6100
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2005-8-11
收藏
得分:0 

开始执行排序的循环语句有问题吧,你的是for(j=1;j<=N-1;j++) for(i=1;i<N-j;i++)

其中下面的一个for语句中,你的i 是i<N-j,这样会丢了最后的一个吧,因为当你的j=1时,i<9,而你的i是从1开始的,这样的话,只有8个数吧,,,,应该写为i<=N-j吧,,,

现在有事,所以我也只是看看而已,感觉上是这样错了,你再自己看看吧,试一试


2005-08-15 19:40
wenyong
Rank: 1
等 级:新手上路
帖 子:251
专家分:0
注 册:2005-8-9
收藏
得分:0 
#define N 10
void main()
{int a[N+1];int i,j,t;
printf("please inpute 10 number:\n");
for(i=1;i&lt;=N;i++)
scanf("%d",&amp;a[i]);
printf("\n");
for(j=1;j&lt;=N;j++)
  for(i=1;i&lt;=N-j;i++)
  if(a[i]&gt;a[i+1])
  {t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("the scorted numbers:\n");
for(i=1;i&lt;=N;i++)
printf("%d",a[i]);
getch();
}

这样就可以了

2005-08-16 11:13
sunllcom
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2005-7-23
收藏
得分:0 
5,6楼的说的对,支持!

2005-08-17 16:16
79439147
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2005-8-18
收藏
得分:0 
我用TC,还有错误啊{t=a[i];a[i]=a[i+1];a[i+1]=t;}这段有问题

2005-08-18 17:50
loveney
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2005-7-13
收藏
得分:0 
{t=a[i];a[i]=a[i+1];a[i+1]=t;}这段没有问题

问题出在for(i=1;i&lt;N-j;i++)

2005-08-19 02:24
wenyong
Rank: 1
等 级:新手上路
帖 子:251
专家分:0
注 册:2005-8-9
收藏
得分:0 
我运行没问题 用TC2

2005-08-19 09:00
快速回复:冒泡排列哪里错了。
数据加载中...
 
   



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

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