在c语言中,将一个数插入一个数组中,程序怎么写?

 我来答
maidongcao
推荐于2017-11-24 · TA获得超过1655个赞
知道小有建树答主
回答量:187
采纳率:100%
帮助的人:307万
展开全部
有一个已排好序(从大到小)的数组有5个元素,从键盘输入一个数,要求按原排序的规律将它插入到数组中
#include<stdio.h>
void main()
{
int i,x,j;
int a[6]={1,5,10,15,20};
scanf("%d",&x);
for(i=0;i<5;i++)
if(x<a[i])
{
j=i; /*当这个数比当前数小时,用j记住当前位置,即j=i,中断循环。比当前数大时继续下一个(小应当在左侧,大则在右侧) */
break;
}
for(i=5;i>=j;i--)
a[i+1]=a[i]; /*将位置j以后的数据都向后移一位*/
a[i+1]=x; /* 把要插入的数x放到a[i]中,因为i--后 i 比实际要插入的位置少1,所以真正插入的位置应该i+1*/

for(i=0;i<=5;i++) /*这时一共有6个数*/
{
printf("%d ",a[i]);
}
}
洁白又精练的喜鹊
2018-03-31 · TA获得超过1.4万个赞
知道小有建树答主
回答量:94
采纳率:100%
帮助的人:3.4万
展开全部

有一个已排好序(从大到小)的数组有5个元素,从键盘输入一个数,要求按原排序的规律将它插入到数组中
1.#include<stdio.h>void main({int i,x,j; int {1,5,10,15,20}; scanf("%d",&x);for(i=0;i<5;i++)  if(x<a[i])

2.j=i;    /*当这个数比当前数小时,用j记住当前位置,即j=i,中断循环。比当前数大时继续下一个(小应当在左侧,大则在右侧) */

3.break;  for(i=5;i>=j;i--)
a[i+1]=a[i]; /*将位置j以后的数据都向后移一位*/ a[i+1]=x;    /*

4. 把要插入的数x放到a[i]中,因为i--后 i 比实际要插入的位置少1,所以真正插入的位置应该i+1*/

5.for(i=0;i<=5;i++)  /*这时一共有6个数* printf("%d ",a[i]);

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我行我素tjc
2011-11-26 · 超过12用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:37.9万
展开全部
#include<stdio.h>
void main()
{
int s[10]={1,2,3,4,5,6,7,8,9};
int n;
printf("请输入需要插入到数组中的位置:");
scanf("%d",&n); //比如说插入到第三个位置,即s[2]中,则输入3
int num;
printf("请输入需要插入的数:");
scanf("%d",&num);
for (int i=10-1;i>=n;i--)
{
s[i]=s[i-1];
}
s[i]=num;
printf("插入之后的数组:\n");
for (i=0;i<10;i++)
{
printf("%d ",s[i]);
}
printf("\n");
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
91...6@qq.com
2011-11-26
知道答主
回答量:12
采纳率:0%
帮助的人:4.6万
展开全部
你可以先定义一个数组和一个变量,然后把这个变量写入数组,比如
int x,i,a[10];
for(i=0;i<=9;i++)
a[i]=x;
这样程序运行后,数组a[10]的内容依次插入了里面。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
单步
2017-12-06
知道答主
回答量:3
采纳率:0%
帮助的人:2593
引用maidongcao的回答:
有一个已排好序(从大到小)的数组有5个元素,从键盘输入一个数,要求按原排序的规律将它插入到数组中
#include<stdio.h>
void main()
{
int i,x,j;
int a[6]={1,5,10,15,20};
scanf("%d",&x);
for(i=0;i<5;i++)
if(x<a[i])
{
j=i; /*当这个数比当前数小时,用j记住当前位置,即j=i,中断循环。比当前数大时继续下一个(小应当在左侧,大则在右侧) */
break;
}
for(i=5;i>=j;i--)
a[i+1]=a[i]; /*将位置j以后的数据都向后移一位*/
a[i+1]=x; /* 把要插入的数x放到a[i]中,因为i--后 i 比实际要插入的位置少1,所以真正插入的位置应该i+1*/

for(i=0;i<=5;i++) /*这时一共有6个数*/
{
printf("%d ",a[i]);
}
}
展开全部
诶你这个不能运行啊
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式