| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 432 人关注过本帖
标题:[讨论][求助]关于数组插入问题
只看楼主 加入收藏
编程难难上青天
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2006-6-7
收藏
 问题点数:0 回复次数:3 
[讨论][求助]关于数组插入问题

建立一个数组先排序然后插入 但是到插入的时候遇到问题了 看下面的注释
#include<stdio.h>
void main()
{
int a[20],i,j,n,num,temp;
i=0;
printf("请输a[]的值,以-1作为结束标志\n\n")
;
//建立数组//
do
{
printf("输入a[%d]的值:",i);
scanf("%d",&a[i]);
}while(i<19 && a[i++]!=-1);
n=i-1;

printf("排序前的数组\n");
for(i=0;i<n;i++)
{
printf("%5d",a[i]);
}
putchar('\n');

printf("排序后的数组\n"); //降序排列//
for(i=1;i<=n-1;i++)
{
for(j=n-1;j>=i;j--)
{
if(a[j]>a[j-1])
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
for(i=0;i<n;i++)
{
printf("%5d",a[i]);
}
putchar('\n');

printf("请输入一个要插入的数:"); //实现插入//
scanf("%d",&num);

for(i=0;i<n;i++)
{
if(num > a[i])
{
for(j=n-1;j>=i;j--)
{
a[j+1]=a[j];
}
a[i]=num;
break;
}
else //如果插入的数比数组中最小的数还小,这段代码怎么写??//
{
a[] //我是这样写的 else
} { a[n+1]=num;} 可是运行时有问题. 请指教

}
n+=1;
printf("插入后的数组\n");
for(i=0;i<n;i++)
{
printf("%5d",a[i]);
}
printf("\n");
}

搜索更多相关主题的帖子: include color 
2006-07-11 01:54
超级新手
Rank: 2
等 级:论坛游民
帖 子:185
专家分:59
注 册:2006-2-9
收藏
得分:0 

你的数组够大不
是否越界


快快来我的群:13485998
学学C,玩玩算法,搞搞加密,比比谁更菜?
ARM恨死你。
2006-07-11 06:54
lhyanlh
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-7-11
收藏
得分:0 

数组如果有长度为N,则最后一个为a[N-1],所以呢,最小的时候应该是a[N]=num,而不是a[N+1]

2006-07-11 09:38
liubei1980
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-3-28
收藏
得分:0 

#include<stdio.h>
main()
{
int i,j,m,t,n,a[6];
printf("enter 5 number:");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for(i=0;i<5;i++) //对输入的数字排序
for(j=i+1;j<5;j++)
if(a[i]>a[j])
{
n=a[i];
a[i]=a[j];
a[j]=n;
}
printf("\n");
printf("the original sequence is:");
for(i=0;i<5;i++)
printf("%-5d",a[i]);
printf("\n");
printf("enter the inserted number:"); //插入一个数并与原数列进行比较
scanf("%d",&t);


if(t<a[0]) //插入的数比原数列中最小的还小
{
for(i=5;i>=1;i--)
a[i]=a[i-1];
a[0]=t;
}


for(i=0;i<4;i++) //插入的数大小介于数列最大数与最小数之间
{
if(t>a[i]&&t<a[i+1])
{
{
m=a[i+1];
a[i+1]=t;
t=m;
}
a[5]=t;
}
}

if(t>a[4]) //插入的数大于原数列中最大的数
a[5]=t;


printf("the new sequence is:"); //输出新数列
for(i=0;i<6;i++)
printf("%-5d",a[i]);
printf("\n");
}

没仔细看你的程序,我自己写了一个你看是否对你有用!!~~~


2006-07-11 13:56
快速回复:[讨论][求助]关于数组插入问题
数据加载中...
 
   



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

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