C语言数组程序设计题

求代码

#include <stdio.h>

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

温馨提示:答案为网友推荐,仅供参考
第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]);
}本回答被提问者采纳
相似回答