用C语言编写有一个递增有序的整型数组A,输入一个数,将其插入到数组A中使得A依然保持有序性

供稿:hz-xin.com     日期:2025-01-15
C语言编程:输入10个有序(由小到大)整数存入数组a,再输入一个整数x,在数组a中插入x,使其仍然有序。

#include
#define Pi 3.1415926
int main()
{
int a[11],i,x;
printf("请输入10个由小到大的整数:
");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("请输入要插入的数:
");
scanf("%d",&x);
for(i=9;i>=0&&a[i]>x;i--)
a[i+1]=a[i];
a[i+1]=x;
printf("插入后的数组:
");
for(i=0;i<11;i++)
printf("%d ",a[i]);
printf("
");
getch();
return 0;
}

#include

voidmain()

{

inta[10],b[10],c[20],i,ia,ib,ic;

printf("pleaseinputthefirstarray
");

for(i=0;i<10;i++)

scanf("%d",&a[i]);

for(i=0;i<10;i++)

scanf("%d",&b[i]);

printf("
");

ia=0;ib=0;ic=0;

while(ia<10&&ib<10)

{

if(a[ia]<b[ib])

{

c[ic]=a[ia];

ia++;

}

else{

c[ic]=b[ib];

ib++;

}

ic++;

}

while(ia<10)

{

c[ic]=a[ia];

ia++;

ic++;

}

while(ib<10)

{

c[ic]=b[ib];

ib++;

ic++;

}

for(i=0;i<20;i++)

{

printf("%5d",c[i]);}

}

扩展资料
C语言归并排序
#include

#defineLEN8

inta[LEN]={5,2,4,7,1,3,2,6};

inttempa[LEN];

voidmerge(inta[],inttempa[],intleft,intright,intrightend)

{

inti,temp;

intleftend=right-1;

intnum=rightend-left+1;

temp=left;

while(left<=leftend&&right<=rightend)

{

if(a[left]<a[right])

{

tempa[temp++]=a[left++];

}

else

{

tempa[temp++]=a[right++];

}

}

while(left<=leftend)

{

tempa[temp++]=a[left++];

}

while(right<=rightend)

{

tempa[temp++]=a[right++];

}

for(i=0;i<num;i++,rightend--)

{

a[rightend]=tempa[rightend];

}

}

voidsort(inta[],inttempa[],intleft,intright)

{

intmid;

if(left<right)

{

mid=(left+right)/2;

sort(a,tempa,left,mid);

sort(a,tempa,mid+1,right);

merge(a,tempa,left,mid+1,right);

}

}

intmain()

{

sort(a,tempa,0,7);

for(inti=0;i<LEN;++i)

{

printf("%d,",a[i]);

}

return0;

}

#include <stdio.h>

main()
{
int a[10] = {0,1,2,3,4,6,7,8,9};
int i=0,j=0,num=0;
scanf("%d",&num);
for (i=0;i<9;i++)
{
if (num<a[i])
{
for (j=8;j>=i;j--)
{
a[j+1] = a[j];
}
a[i]=num;
break;
}
}
for (i=0;i<10;i++)
{
printf("%d ",a[i]);
}

}

5
0 1 2 3 4 5 6 7 8 9 Press any key to continue


int buf[x] = {0},i,tmp=0;
do
{
for(i = x - 2;i >=0;i--)if(buf[i]) break;
for(;i >=0;i--)

{

if(buf[i] >= tmp)
buf[i + 1] = buf[i];
else
{
buf[i] = tmp;break;

}

}

printf("Please input('q'):");
fflush(stdin);

}while(EOF != scanf("%d",&tmp));
//效率有点低,而且数组满了后会出问题,要求不高可以用

编程序实现功能:在一个元素值按升序存放的整型数组中插入一个数,使得插...
2012-01-05 c语言编程:将一个任意整数插入到已排列的整型数组中,插入后,... 29 2016-05-17 C语言编程:实现:在已按降序排列的整型数组中插入一个整数,使... 9 2015-07-17 用C语言编写有一个递增有序的整型数组A,输入一个数,将其插入... 2015-05-22 用C语言实现在一个存放了升序数组的整型数组中...

编写C语言程序,把一个数组按从小到大的次序排列起来
int i, j, m, n, k;\/\/定义变量的数据类型为整型 printf("input 10 <int> number:");\/\/文字提示 for (i = 0; i <= 9; i++)\/\/用循环输入数值给数组number并赋给数组New_number { scanf("%d", &number[i]);\/\/输入10个整形数字到数组中 New_number[i] = number[i];\/\/数组...

c语言给定二维整型数组先对每行从小到大排序,后对每列从小到大排序反复...
二维数组我直接赋的初值。数组的行数和列数你改常量就行了。你想手动输入数组值,你自己写一个输入就行了。代码功能:先对每行进行一次升序排列,再对每列进行一次升序排列。无限循环直到数组不再发生变动。也就是说,至少会有两轮行列排序检测。include<stdio.h>#include<malloc.h>#define row 3#...

c语言编写程序,定义一个3行4列的二维整型数组
include <stdio.h>int main(){ int a[3][4]; int l[3]={0},c[4]={0},s=0; int i,j; for(i = 0; i < 3;i++) { for(j = 0; j < 4; j ++) { scanf("%d",&a[i][j]); s+=a[i][j]; l[i]+=a[i][j]; c[j]+=a...

②编写C语言函数,使用指针完成一个二十位整型数组的遍历,并将数组中的...
include <stdio.h>#include <conio.h>int main (void) { int arr[20] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20}; int *p = arr; \/* p指向数组首元素 *\/ while (p-arr != 20) { \/* 遍历数组,每元素值+1 *\/(*p)++;printf ("%d\\t",...

C语言编程:有一个已排好序的数组,现输入一个数插入到数组中,要求插入该...
for (i=0;i<n;i++) scanf("%d", &a[i]);\/*输入1个数*\/ scanf("%d",&x);\/*找到需要插入的位置j*\/ for (i=0;i<n;i++) if (a[i]<x) j=i+1;\/*把j之后的数据后移*\/ for (i=n;i>j;i--) a[i]=a[i-1];\/*插入数据*\/ a[j]=x;\/*输出结果*\/ for (i=0;...

定义一个一维整型数组,有10个元素。(5,4,9,2,6,11,14,8,10,16)?_百 ...
C语言代码和运行结果如下:输出符合要求,望采纳~附源码:include <stdio.h> int diff(int x, int y) { \/\/ 求差函数 if (x > y)return x - y;else return y - x;} int main() { int a[10] = {5,4,9,2,6,11,14,8,10,16}; \/\/ 定义数组并初始化 int max = a[0], ...

c语言编程,判断一个长度为n的整型数组是否有序。升序返回1,降序返回-1...
\/\/刚写的code,测试通过#include<stdio.h>#define N 4int check_order(int *tar, int n){int i;i = 1;if(tar[0] == tar[1]){while(i<n&&tar[i] == tar[i-1])i++;if(i == n)return 2;}i=1;if(tar[0] > tar[1]){while(i<n&&tar[i-1] >tar[i])i++;if(i ...

请编程达人用c语言编写一个程序输出魔方阵
include <stdio.h> define N 16 \/\/这里可以修改N的值 int main(){ int a[N][N],i,j,k,p,m,n;p=1;while(p==1)\/*要求阶数为1~15的商数*\/ { printf("Enter n(n=1~15):");\/\/可以输入小于等于N-1的整数 scanf("%d",&n);if((n!=0)&&(n<=N-1)&&(n%2!=0))p=0...

C语言编程,输入10个整数,分别按顺序和逆序输出
C语言通过输入十个整数然后分别顺序和逆序输出的编程思想和方法如下:1.首先需要定义一个整型数组用于存储输入的10个整数。这里定义一个数组a。2.然后利用for循环,接受从键盘输入的10个整数。这里使用i作为循环的游标变量。3.输入完毕后,再次利用for循环来顺序输出存储在数组的十个数。这里同样使用局部...