| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 795 人关注过本帖
标题:插入排序为何不对呢?
只看楼主 加入收藏
我欲无言
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2013-3-26
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
插入排序为何不对呢?
#include<stdio.h>
void main()
{
    int x,i,j,temp1,temp2,s[12];
    printf("please input Incrementing an array:\n");
    for(i=0;i<10;i++)
        scanf("%d",&s[i]);
    for(i=0;i<10;i++)
    printf("%d",s[i]);
    printf("please input a digit:\n");
    scanf("%d",&x);
    if(x>s[9]) s[10]=x;
    else
        for(i=0;i<10;i++)
        {
            if(s[i]>x) temp1=s[i];
            s[i]=x;
            for(j=i+1;j<11;j++)
            {
                temp2=s[j];
                s[j]=temp1;
                temp1=temp2;
                break;
            }
        }
   
        for(i=0;i<11;i++)
        printf("%d\n",s[i]);
}
搜索更多相关主题的帖子: void include please 
2013-03-27 09:43
zhangfudong
Rank: 4
等 级:业余侠客
帖 子:119
专家分:212
注 册:2012-12-12
收藏
得分:7 
我搞错了,你这叫插入排序?

[ 本帖最后由 zhangfudong 于 2013-3-27 11:46 编辑 ]
2013-03-27 10:47
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:7 
你有整型定义数组输入时好麻烦啊...
用 char 多方便
按照你的定义,输入一组数字,每输入一个就要按一下回车键

[ 本帖最后由 韶志 于 2013-3-27 13:23 编辑 ]

三十年河东,三十年河西,莫欺少年穷!
2013-03-27 13:11
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
我按照你的麻烦程序改了一下:  红色部分是改动的,注意对比一下

#include<stdio.h>
void main()
{
    int x,i,j,temp1,temp2,s[12];
    printf("please input Incrementing an array:\n");
    for(i=0;i<10;i++)
        scanf("%d",&s[i]);
    for(i=0;i<10;i++)
        printf("%d",s[i]);
    printf("please input a digit:\n");
    scanf("%d",&x);
    if(x>s[9]) s[10]=x;
    else
        for(i=0;i<10;i++)
        {
            if(s[i]>x)
            {
                temp1=s[i];
                s[i]=x;
            }
            else continue;
            for(j=i+1;j<11;j++)
            {
                temp2=s[j];
                s[j]=temp1;
                temp1=temp2;
               
            }
            break;
        }
   
     for(i=0;i<11;i++)
        printf("%d\n",s[i]);
     return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册


[ 本帖最后由 韶志 于 2013-3-27 13:39 编辑 ]

三十年河东,三十年河西,莫欺少年穷!
2013-03-27 13:20
zhangfudong
Rank: 4
等 级:业余侠客
帖 子:119
专家分:212
注 册:2012-12-12
收藏
得分:0 
你这就是插入一个数到一个已经排序的数组中间。
2013-03-27 13:29
zhangfudong
Rank: 4
等 级:业余侠客
帖 子:119
专家分:212
注 册:2012-12-12
收藏
得分:0 
2013-03-27 13:30
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
回复 5楼 zhangfudong
你是说我吗?不是啊  不一定是中间的,是按照插入数的大小排序的,,,
不过楼主的程序确实复杂化了,我也是按照他的程序改的

三十年河东,三十年河西,莫欺少年穷!
2013-03-27 13:40
zhangfudong
Rank: 4
等 级:业余侠客
帖 子:119
专家分:212
注 册:2012-12-12
收藏
得分:0 
你输入的数组不是已经按从小到大输入的吗?插入的位置当然是无所谓的啦
2013-03-27 13:50
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:0 
回复 8楼 zhangfudong
printf("please input Incrementing an array:\n");
楼主要求的就是输入一串递增的数字...
有时候,英语能力也很重要
虽然楼主的英语也有错误,但意思还是能理解的,应该是   input an incrementing array

[ 本帖最后由 韶志 于 2013-3-27 13:54 编辑 ]

三十年河东,三十年河西,莫欺少年穷!
2013-03-27 13:52
zhangfudong
Rank: 4
等 级:业余侠客
帖 子:119
专家分:212
注 册:2012-12-12
收藏
得分:0 
回复 7楼 韶志
这样插入一个数复杂了点,但也是一个方法。学习了
2013-03-27 13:53
快速回复:插入排序为何不对呢?
数据加载中...
 
   



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

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