标题:错在哪里
只看楼主
东台野人
Rank: 1
来 自:江苏省东台市
等 级:新手上路
帖 子:57
专家分:0
注 册:2007-11-17
 问题点数:0 回复次数:7 
错在哪里
//足足2个小时弄不出来
#include"stdio.h"
#include"conio.h"
void main()
{
    int a[10],i,j,k,t;
    printf("输入10个数字:\n");
    for(i=0;i<10;i++)
        scanf("%d",&a[i]);
    for(i=0;i<10;i++)
    {
          k=i;
          for(j=9;j>i;j--)
          {
               if(a[j]<a[i])
               {
                   k=j;
               }
          }
         t=a[k];
         a[k]=a[i];
        a[i]=t;
     }
    printf("排列后的数为:\n");
    for(i=0;i<10;i++)printf("%d\n",a[i]);
    getch();
}

[[italic] 本帖最后由 东台野人 于 2008-1-20 21:10 编辑 [/italic]]
搜索更多相关主题的帖子: include printf 数字 void 
2008-01-20 21:07
闪闪4521
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-11-30
得分:0 
if(a[j]<a[i])
吧把这一句该成,
if(a[j]<a[k])
2008-01-20 21:13
ggggiaqgyd
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-10-13
得分:0 
看不懂呀!
是十个数比较大小吗?
如果是的话应该是这样的
for(i=0;i<9;i++)
for(j=i;j<10;j++)
{k=a[i];a[i]=a[j];a[j]=k;}
如果不是的话别骂我呀!!
呵呵
2008-01-20 21:20
ggggiaqgyd
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-10-13
得分:0 
for(i=0;i<9;i++)
for(j=i;j<10;j++)
if(a[i]<a[j])
{k=a[i];a[i]=a[j];a[j]=k;}
呀,刚才打错了,呵呵
2008-01-20 21:21
闪闪4521
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-11-30
得分:0 
是10个数用选择排序
楼上的比他的时间复杂度高一点
2008-01-20 21:34
ggggiaqgyd
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2007-10-13
得分:0 
什么意思?
什么难到他的运行步骤少?
2008-01-20 21:37
闪闪4521
Rank: 1
等 级:新手上路
帖 子:196
专家分:0
注 册:2007-11-30
得分:0 
数字做交换的次数少了
多了一个K将要交换的数字的位置记录下来,扫描一遍之后再交换
2008-01-20 21:53
nianshi
Rank: 1
等 级:新手上路
帖 子:199
专家分:0
注 册:2007-11-7
得分:0 
你这应该是升序排列,下面选择排序法:
for(i=0;i<9;i++)
 for(j=i+1;j<10;j++)
  {
   if(a[i]>a[j])
    {t=a[i];a[i]=a[j];a[j]=t;}
  }

行至水穷处 坐看去起时
C语言QQ群1:51871776  群2:26313099  群3:47145282
2008-01-21 09:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-198130-1-1.html




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

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