已知一个数列{1,4,13,9,6,11,18,14,25}(9个数),编写程序实现:输入一个数x和下标k,将该数插入数列中的下标为k的位置,并保持原有数列顺序不变,然后输出新的数列(10个数)。
输入格式:
输入两个数,第1个数代表待插入的数值,第2个数应在[0,9]间代表待插入的位置下标,两个数以空格间隔。
输出格式:
输出数列每个元素占4列
输入样例:
输入两个数,第1个数代表待插入的数值,第2个数应在[0,9]间代表待插入的位置下标
15 2
输出样例:
输出插入15后的数列
1 4 15 13 9 6 11 18 14 25
#include<stdio.h>
int main()
{
int n,m,a[9]={1,4,13,9,6,11,18,14,25},b[10];
scanf("%d%d",&n,&m);
for(int i=0;i<10;i++)
{
if(i==m)
{
printf("%4d",n);
break;
}
printf("%4d",a[i]);
}
for(int i=m+1;i<10;i++)
{
b[i]=a[i-1];
printf("%4d",b[i]);
}
return 0;
}
第一个for用来输出插入前的数和插入的数
if语句用来寻找待插入的位置
找到后输出插入的数并退出循环
第二个for用来输出插入数后面的数
将数组都往后推一位以达到目的
b[3]=a[2];
b[4]=a[3];
......