这里定义一个整型数组,数组名为a,此数组可包含8个整型元素,原有7个元素按升序排列,来为大家进行演示。
在代码编写前,必须进行逻辑分析。这里需考虑三种情况:
- 输入的值小于或等于a[0]
- 输入的值位于数组中间(也可以与数组中间的值相等)
- 输入的值大于或等于a[6]
考虑完这些情况,就可以进行代码编写了。
#include<stdio.h>
int main()
{
int a[8]={3,4,8,12,23,25,29},i,j,t;
printf("请输入一个数: ");
scanf("%d",&t);
if(t>=a[6]) //这是输入的值为数组最大值的情况 (包含a[7]等于a[6]的情况)
a[7]=t;
else
{
for(i=1;i<8;i++)
{
if(t<=a[0]) //这是输入的值为数组最小值的情况(包括a[0]等于a[1]的情况)
{
for(j=7;j>i-1;j--)
a[j]=a[j-1];
a[i-1]=t;
break;
}
if((t>a[i-1]&&t<a[i])||t==a[i]) //这是输入的值位于数组中间的情况(包括在数组中间有两个大小一样的值的情况)
{
for(j=7;j>i-1;j--)
a[j]=a[j-1];
a[i]=t;
break;
}
}
}
for(i=0;i<8;i++)
printf("%d ",a[i]);
return 0;
}