标题:关于一维数组排序问题????
只看楼主
xy3zhong
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2004-12-6
 问题点数:0 回复次数:3 
关于一维数组排序问题????
程序如下:
#include<stdio.h>
main()
{
int i,j=0,k,a[11]={20,18,16,14,12,10,8,6,4,2};
for(i=0;i<10;i++) printf("%4d",a[i]);
printf("\n");
printf("Input k:");scanf("%d",&k);
while(a[j]>=k&&j<10) j++;
for(i=10;i>=j+1;i--)
a[i]=a[i-1];
a[j]=k;
for(i=0;i<11;i++)
printf("%4d",a[i]);
printf("\n");}
题目要求是从键盘输入一个数。插入到已按降序排列的数组中,要求按原来的排序规律插入!
 我从while(a[j]>=k&&j<10) j++;
for(i=10;i>=j+1;i--)这个部分到后面完全搞不明白。是什么意思啊 ?
搜索更多相关主题的帖子: printf 键盘 Input 
2005-06-30 17:48
xy3zhong
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2004-12-6
得分:0 
各位高手,展现一下啊
2005-07-01 00:07
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
得分:0 
while(a[j]>=k&&j<10) j++; 这句是找到插入点;
for(i=10;i>=j+1;i--) a[i]=a[i-1];  这个循环是从插入点开始向后移,这样能空出一个单元给插入的数;
a[j]=k;   这句便是插入该数,插入到插入点 j 的单元那。
再下一个循环是显示结果而已。

就是这样啊。

欢迎加入 MVC 技术讨论群(新群:90093426)
2005-07-01 00:23
xy3zhong
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2004-12-6
得分:0 
谢谢3楼的朋友,讲解的非常详细!!

一看就是道行深的。。呵呵。。
2005-07-01 10:35



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




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

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