| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 985 人关注过本帖
标题:数组程序设计
只看楼主 加入收藏
林康
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2017-10-31
结帖率:14.29%
收藏
 问题点数:0 回复次数:3 
数组程序设计
简化的插入排序:输入一个正整数n(1<n<10)有序的整数,再输入一个整数x,把x插入这组数据中,使该组数据仍然有序
#include<stdio.h>
int main(void)
{
    int i,j,n,x,a[10];
    printf("输入数据的个数n:");
    scanf("%d",&n);
    printf("输入%d个整数:",n);
    for(i=0;i<n;i++)
    scanf("%d",&a[i]);
    printf("输入要插入的整数:");
    scanf("%d",&x);
    for(i=0;i<n;i++){
        if(x>a[i])
        continue;
        j=n-1;
        while(j>=i){
            a[j+i]=a[j];
            j--;
            
        } a[i]=x;
        break;
    }
    if(i==n)
    a[n]=x;
    for(i=0;i<n+1;i++)
    printf("%d",a[i]);
    putchar(' \n');
    return 0;
   
}
请问j和continue表示什么意思!
谢谢!
搜索更多相关主题的帖子: 数组 输入 整数 printf scanf 
2017-12-03 11:02
a1669532329
Rank: 1
等 级:新手上路
威 望:1
帖 子:5
专家分:0
注 册:2017-12-3
收藏
得分:0 
contiune表示退出本次循环进行下一个循环,  j=n-1 和while循环 可以直接删除掉  结果都是一样的,可以说这段代码是没用的。而且这个整个程序代码没有起到排序的作用。
2017-12-03 13:14
林康
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2017-10-31
收藏
得分:0 
谢谢
2017-12-03 17:56
liaohs
Rank: 4
等 级:业余侠客
威 望:7
帖 子:61
专家分:292
注 册:2017-11-26
收藏
得分:0 
有几个问题:
1)题目不清楚。估计是要先输入n个整数,并且从大到小有序。
2)意图好像是找到小于x的数后,进行插入。因此,要移动后面的所有整数。
但是,后移一位即可,a[j+i]=a[j]应为a[j+1]=a[j]
3)后面的break应删除,否则无法循环。
4)而且n应该加一,因为整数多了一个
2017-12-03 21:56
快速回复:数组程序设计
数据加载中...
 
   



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

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