第1个回答 2013-11-22
【方法】
建立有序数组a[10]={0,2,4,6,8,10,12,14,16,0},最后一个数是多余的,无所谓等于几
输入一个数k,假设输入了7
用循环从数组头逐个比较查找比7大的数,找到后停下来,记录位置,应当记录8的位置是4
用循环从数组末尾开始到上面记录的位置结束,将数据逐一向后复制一个位置
则a[10]={0,2,4,6,8,8,10,12,14,16}
将输入的数据赋值到记录的位置上,结束。
【程序】
#include<stdio.h>
void main()
{ int a[10]={0,2,4,6,8,10,12,14,16,0},k,n,i;
scanf("%d",&k);
for ( i=0;i<9;i++ ) if ( a[i]>k ) break;
n=i;
for ( i=8;i>=n;i-- ) a[i+1]=a[i];
a[n]=k;
}
第2个回答 2013-11-22
#include<stdio.h>
void main()
{
int a[10]={1,20,30,40,50,60,70,80,90},i,j,c;
printf("please input a number\n");
scanf("%d",&c);
for(i=0;i<8;i++)
if(c<=a[0])
{
for(j=8;j>=0;j--)
a[j+1]=a[j];
a[0]=c;
break;
}
else if((c>=a[i])&&(c<=a[i+1]))
{
for(j=8;j>i;j--)
a[j+1]=a[j];
a[i+1]=c;
break;
}
if(i==8)
a[9]=c;
for(i=0;i<10;i++)
printf("%d ",a[i]);
}本回答被提问者采纳