| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2155 人关注过本帖
标题:编了个程序,输入10个整数,然后排序,为什么第一个数字总是不对呢?
只看楼主 加入收藏
chihuyu
Rank: 2
等 级:论坛游民
帖 子:70
专家分:13
注 册:2011-12-26
结帖率:100%
收藏
已结贴  问题点数:4 回复次数:9 
编了个程序,输入10个整数,然后排序,为什么第一个数字总是不对呢?
程序代码:
#include"stdio.h"
#include"math.h"
void main()
{
    int a[10],i,j,t;
    for(i=0;i<9;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=1;i<=9;i++)
    {
        for(j=0;j<=i-1;j++)
        {
            if(a[i]<a[j])
            {
                t=a[j];
                a[j]=a[i];
                a[i]=t;
            }
        }
       
    }

    for(i=0;i<9;i++)
    {
        printf("%d  ",a[i]);
    }

    printf("\n");

}
编了个程序,输入10个整数,然后排序,为什么第一个数字总是不对呢? 求高手帮助。
搜索更多相关主题的帖子: 数字 
2012-02-18 10:03
daydreary
Rank: 2
等 级:论坛游民
帖 子:15
专家分:37
注 册:2012-2-15
收藏
得分:2 
程序代码:
#include"stdio.h"
#include"math.h"
void main()
{
    int a[10],i,j,t;
    for(i=0;i<10;i++)  //你原来在这里写的是for(i=0;i<9;i++),相当于0-8 9个数字,少接收一个数字,要么<=9要么<10
    {
        scanf("%d",&a[i]);
    }
    for(i=1;i<=9;i++)
    {
        for(j=0;j<=i-1;j++)
        {
            if(a[i]<a[j])
            {
                t=a[j];
                a[j]=a[i];
                a[i]=t;
            }
        }
      
    }

    for(i=0;i<9;i++)
    {
        printf("%d  ",a[i]);
    }

    printf("\n");

}



[ 本帖最后由 daydreary 于 2012-2-18 12:17 编辑 ]
2012-02-18 10:26
清微御宇
Rank: 6Rank: 6
来 自:开封
等 级:侠之大者
威 望:2
帖 子:318
专家分:497
注 册:2012-1-15
收藏
得分:1 
好吧,不懂系统只接受了9个数,为什么会输出10个呢?难道系统随便给a[9]负值后再通过后面循环跑到第一位的吗??

[ 本帖最后由 清微御宇 于 2012-2-18 10:42 编辑 ]

Stay hungry , Stay foolish!
2012-02-18 10:27
图辕貅
Rank: 1
等 级:新手上路
帖 子:1
专家分:1
注 册:2012-2-18
收藏
得分:1 
改成如下即可
#include"stdio.h"
#include"math.h"
void main()
{
    int a[10],i,j,t;
    //getchar();
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=1;i<=9;i++)
    {
        for(j=0;j<=i-1;j++)
        {
            if(a[i]<a[j])
            {
                t=a[j];
                a[j]=a[i];
                a[i]=t;
            }
        }
      
    }

    for(i=0;i<10;i++)
    {
        printf("%d  ",a[i]);
    }

    printf("\n");

}
2012-02-18 10:31
chihuyu
Rank: 2
等 级:论坛游民
帖 子:70
专家分:13
注 册:2011-12-26
收藏
得分:0 
谢谢各位。真是膀胱者请~
2012-02-18 10:40
yxiangyxiang
Rank: 3Rank: 3
来 自:/\/\/\/\/
等 级:论坛游侠
帖 子:130
专家分:186
注 册:2012-1-29
收藏
得分:0 
程序代码:
#include"stdio.h"
#include"math.h"
void main()
{
    int a[10],i,j,t;
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
    for(i=1;i<10;i++)
    {
        for(j=0;j<10-i;j++)
        {
            if(a[j]<a[j+1])
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
     
    }

    for(i=0;i<10;i++)
    {
        printf("%d  ",a[i]);
    }

    printf("\n");

}


[ 本帖最后由 yxiangyxiang 于 2012-2-18 11:03 编辑 ]
2012-02-18 11:00
fcmrys
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-2-18
收藏
得分:0 
简单点也行,你把a【10】改成a【9】就好了。。。。
2012-02-18 17:15
为了未来
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:26
专家分:20
注 册:2012-2-18
收藏
得分:0 
回复 7楼 fcmrys
路过
2012-02-18 17:34
陪你看雪ly
Rank: 1
等 级:新手上路
帖 子:20
专家分:0
注 册:2012-2-16
收藏
得分:0 
你最后的输出项有问题,把9改成10就好了
2012-02-18 18:04
snakelazixp
Rank: 2
等 级:论坛游民
帖 子:51
专家分:94
注 册:2012-2-13
收藏
得分:0 
楼主想用冒泡法排序吧,你的两个for循环控制的有问题,还有开始的数组接受的for循环也有问题。。。
2012-02-18 23:19
快速回复:编了个程序,输入10个整数,然后排序,为什么第一个数字总是不对呢?
数据加载中...
 
   



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

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