|
百度知道提问:
已有一个排好序的数组{3,6,9,23,34,56,78},现输入一个数,要求按原来的排序的规则将它插入数组中。
我的解法:
#include <stdio.h>
#define MAX 20
int main(void)
{
int a[MAX] = {3,6,9,23,34,56,78};
int i = 0;
int k = 0;
int m = 0;
int temp;
while( a != 0 && a[i+1] != 0 && (i+1) < MAX )
i++;
k = i;
m = i;
i = 0;
printf("被初始化的数组个数为: %d\n",k+1);
if( k == MAX - 1){
printf("数组已满,无法再插入\n");
return 0;
}
printf("请输入一个整数以进行排序: ");
scanf("%d",&temp);
while( temp > a )
{
i++;
}
while( k-i >= 0 )
{
a[k+1] = a[k];
k--;
}
a = temp;
m = m + 1;
printf("新的数组为: ");
for(i=0; i<m+1; i++)
{
printf("%d ", a);
}
printf("\n");
return 0;
} |
|