| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 789 人关注过本帖
标题:数组编程
只看楼主 加入收藏
糖果铺满
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-2-7
结帖率:100%
收藏
 问题点数:0 回复次数:5 
数组编程
#include<stdio.h>
void main()
{
    int a[10];
    int i,j,t;
    printf("please input 10 numbers: \n");
    for (i=0;i<10;i++)
        scanf("%d",&a[i]);
    for (j=0;j<9;j++)
        for(i=0;i<9-i;i++)
            if(a[i]>a[i+1])
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
            }
    printf("the sorted numbers is :\n");
    for (i=0;i<10;i++)
        printf("%d",a[i]);
}




请大家帮忙检查一下这个程序,使用起泡法对10个数排序(从小到大)
但是,运行的时候,只有前面的数字有了排序,后面的几个数字就没有排序了。。
我弄不清楚哪里编程错误。。。请指教。。谢谢了~~
搜索更多相关主题的帖子: 编程 include numbers please 
2010-02-17 15:21
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
回复 楼主 糖果铺满
#include<stdio.h>
void main()
{
    int a[10];
    int i,j,t;
    printf("please input 10 numbers: \n");
    for (i=0;i<10;i++)
        scanf("%d",&a[i]);
    for (j=0;j<9;j++)
        for(i=0;i<9;i++)
            if(a[i]>a[i+1])
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
            }
    printf("the sorted numbers is :\n");
    for (i=0;i<10;i++)
        printf("%d",a[i]);
}


c语言刚开一学期,就换开VB...
2010-02-17 15:47
天宇心魂
Rank: 1
等 级:新手上路
帖 子:6
专家分:1
注 册:2010-1-23
收藏
得分:0 
改成i<9-j,应该对了
2010-02-17 15:52
dydsdyds
Rank: 6Rank: 6
来 自:Java
等 级:侠之大者
帖 子:217
专家分:457
注 册:2010-2-14
收藏
得分:0 
回复 3楼 天宇心魂
恩,也是对的。
好像我的多运行了几遍。

c语言刚开一学期,就换开VB...
2010-02-17 15:55
ycd123
Rank: 1
等 级:新手上路
帖 子:42
专家分:5
注 册:2010-1-6
收藏
得分:0 
楼主你注意的这句代码for(i=0;i<9-i;i++)
你写成9-i了,应该是9-j。
明白了吗?
2010-02-17 16:09
JZ_ZCCZ
Rank: 2
等 级:论坛游民
帖 子:17
专家分:17
注 册:2010-2-25
收藏
得分:0 
#include<stdio.h>
void main()
{
    int a[10];
    int i,j,t;
    printf("please input 10 numbers: \n");
    for (i=0;i<10;i++)
        scanf("%d",&a[i]);
    for (j=0;j<9;j++)
        for(i=j+1;i<10;i++)            //
  比较喜欢这种方式,很直观,每一次内循环完后数组最左边放最小数      
           {   if(a[j]>a[i])
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
    printf("the sorted numbers is :\n");
    for (i=0;i<10;i++)
        printf("%d",a[i]);
}
2010-02-27 10:26
快速回复:数组编程
数据加载中...
 
   



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

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