c语言已知一个按升序排列数组,任意输入一个元素,插入数组中,并保持数组元素升

如题所述

#include <stdio.h>
int main()
{
int a[100]={0}; //因为你要继续加入数据,所以数组不能定义成9,要大一些,至少应该是10
int i;
for(i=0;i<9;i++ ) //输入9个数,必须用循环,一句解决不了
scanf("%d",&a[i]);

int j,temp;
for(i=0;i<8;i++) //完成排序
{
for(j=i+1;j<9;j++)
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
printf("input a number: " );
scanf("%d", &temp );
for(i=0;i<9;i++ ) //查找插入位置
{
if ( temp < a[i] )
break;
}
for( j=8;j>=i;j-- ) //i后面的数后移
a[j+1]=a[j] ;
a[i]=temp; //插入数据到i位

for( i=0;i<10;i++ ) //输出数组
printf("%d ",a[i]);
printf("\n");
return 0;
}
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答