C语言编程>第三周 ⑥ 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

414 阅读2分钟

例题:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

代码如下:

/*程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。*/
#include <stdio.h>
int main()
{
	int a[11]={1,4,6,9,13,16,19,28,40,100};
	int temp1,temp2,number,end,i,j;
	printf("original array is:\n");
	for(i=0;i<10;i++)
		printf("%5d",a[i]);
	printf("\n");
	printf("insert a new number:");
	scanf("%d",&number);
	end=a[9];
	if(number>end)
		a[10]=number;
	else
	{
		for(i=0;i<10;i++)
		{ 
			if(a[i]>number)
			{
				temp1=a[i];
				a[i]=number;
				for(j=i+1;j<11;j++)
				{
					temp2=a[j];
					a[j]=temp1;
					temp1=temp2;
				}
				break;
			}
		}
	}
	for(i=0;i<11;i++)
		printf("%6d",a[i]);
	printf("\n");
	return 0;
}

若输入的数为32,则输出运行窗口如下:
在这里插入图片描述
本周其他练习

C语言程序设计专栏

C语言编程>第三周 ① 求1+2!+3!+…+20!的和。

C语言编程>第三周 ② 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。

C语言编程>第三周 ③ 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。

C语言编程>第三周 ④ 求100之内的素数。

C语言编程>第三周 ⑤ 对10个数进行排序。

C语言编程>第三周 ⑥ 有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

C语言编程>第三周 ⑦ 将一个数组逆序输出。

C语言编程>第三周 ⑧ 打印出杨辉三角形(要求打印出10行)。

越努力越幸运!
加油,奥力给!!!