题目:
给定一个有序数组,内容为 2, 4, 6, 8, 10, 12, 14, 16, 18, 20;
输入一个数据,插入到数组中;
输出的数组仍然为有序数组
// 第一种:较为快速的方式
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int val, i;
int a[11] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
scanf("%d", &val);
for(i=9; i>=-1; i--)
{
if ( a[i] > val )
{
a[i+1] = a[i];
}
else
{
a[i+1] = val;
break;
}
}
for(i=0; i<11; i++)
{
printf("%d ", a[i]);
}
printf("\n");
system("pause");
return 0;
}
// 第二种:按照题目要求,死方法写的方式
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int val, i, j;
int a[11] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
scanf("%d", &val);
for(i=0; i<10; i++)
{
if(val <= a[i])
{
break;
}
}
for(j=9; j>=i; j--)
{
a[j+1] = a[j];
}
a[i] = val;
for(i=0; i<11; i++)
{
printf("%d ", a[i]);
}
printf("\n");
system("pause");
return 0;
}
// 第三种:添加进数组最后,冒泡排序得到结果
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int n, i, j, min, temp, a[11] = {2, 4, 6, 8, 10, 12, 14, 16, 18, 20};
scanf("%d", &a[10]);
min = a[0];
for(i=0; i<11; i++)
{
for(j=i; j<11; j++)
{
if( a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
for(i=0; i<11; i++)
{
printf("%d ", a[i]);
}
printf("\n");
system("pause");
return 0;
}