| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 546 人关注过本帖
标题:菜鸟问题,高手帮忙,谢谢!
只看楼主 加入收藏
waitrain
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2005-12-2
收藏
 问题点数:0 回复次数:5 
菜鸟问题,高手帮忙,谢谢!
现有一个数组a,其中的元素按从小到大排列,现在插入一个数组n(从键盘输入)到数组中,要求插入后的数组仍然按从小到大排列。
帮帮忙,做一下,给个思路也好!
2005-12-18 13:14
fancysea
Rank: 1
等 级:新手上路
帖 子:49
专家分:0
注 册:2005-9-3
收藏
得分:0 

当地一个数组中的元素按大小顺序排列好以后,把第二个数组中的第一个元素a与第一个数组中的每一个元素去做比较,当小于某一个元素n以后就把a插入到n以前。n以后的元素都往后移一位。依照这个顺序将第二组中所有的元素比较一遍,就ok了!


[url=tencent://message/?uin=115927576&Site=http://bbs.&Menu=yes]点击这里给我发消息[/url]
2005-12-18 14:37
waitrain
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2005-12-2
收藏
得分:0 
我先按插入一个数n作的!但是有错误阿!45处错误!!!
#include "stdio.h"
void main()
{
int i,j,n;
static int a[10]={1,3,5,7,9};
printf("请输入n=");
scanf("%d",&n);
for(i=0;i<10;i++)
{
if(a[i]>n)
{
for(j=5;j>i;j--)
{
a[j]=a[j-1];
}
a[i]=n;
break;
}
}
for(i=0;i<10;i++)
printf("%d",a[i]);
}
什么地方错了阿?

曾经沧海难为水 学习语言先学C !!!
2005-12-19 15:35
沉默的羔羊1013
Rank: 1
等 级:新手上路
帖 子:72
专家分:0
注 册:2005-12-10
收藏
得分:0 

用插入法排序
#include "stdio.h"

void sort(int *list,int len)
{
int i,j,insertnode;
for(i=1;i<len;i++)
{
insertnode=list[i];
j=i-1;
while(list[j]>insertnode&&j>=0)
{
list[j+1]=list[j];
j--;
}
list[j+1]=insertnode;
}
}

void main()
{
int i,j,n;
int a[20]={1,3,5,7,9};
int index=5;
printf("please input the value:");
scanf("%d",&n);
a[index]=n;
while(n!=-1)
{
index=index+1;
printf("please input the value:");
scanf("%d",&n);
a[index]=n;
}
sort(a,index);
for(i=0;i<index;i++)
{
printf("%d\t",a[i]);
}
printf("\n");
getch();
}

2005-12-19 16:33
ghy2001
Rank: 1
等 级:新手上路
威 望:1
帖 子:87
专家分:0
注 册:2005-10-30
收藏
得分:0 
n>a[max],排在最后。
n<a[min].a[0]-a[max]都往后移。n==a[0];
n如果在中间。那么比较一下就可以了。

2005-12-19 17:22
waitrain
Rank: 1
等 级:新手上路
帖 子:32
专家分:0
注 册:2005-12-2
收藏
得分:0 
谢谢了!

曾经沧海难为水 学习语言先学C !!!
2005-12-20 11:08
快速回复:菜鸟问题,高手帮忙,谢谢!
数据加载中...
 
   



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

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