方法一:
#include<stdio.h>
int main()
{
int a[11]={1,4,7,9,23,34,56,65,67,89};
int number,end=0,i=0,j=0,t1=0,t2=0;
scanf("%d",&number);
end=a[9];
if(number>end)
a[10]=number;
else
{
for(i=0;i<10;i++)
if(a[i]>number)
{t1=a[i];
a[i]=number;
a[i+1]=t1;
break;
}
}
for(i=0;i<11;i++)
printf("%d\n",a[i]);
}
方法二:
a[11]数组中的元素是从小到大排列,元素只有10个,如果输入的数比a[9]都大,直接把这个数插入到末尾,反之一一比较,找到比输入数大的第一个数a[i],并记录下标i,然后把a[i]~a[9]往后移,移完后,再把这个数插入到a[i]处,并中断循环。
#include<stdio.h>
int main()
{
int a[11]={1,4,6,9,13,16,19,28,40, 100};
int number=0,i=0,j=0;
scanf("%d",&number);
if(number>a[9])
a[10]=number;
else
{
for(i=0;i<10;i++)
{
if(number<a[i])
{
for(j=9;j>i;j--)
{
a[j+1]=a[j];
}
a[i]=number;
break;
}
}
}
for(i=0;i<11;i++)
printf("%d\n",a[i]);
}