请应用数组存储用户输入的10个整数,编写算法将该数组按照从小到大的顺序排列好。用户再输入1个整数,编写代码把它插入原数列中,要求仍然保持从小到大有序。
编写程序时应考虑到所插入数的各种可能性(比原来所有的数都小;比原来所有的数都大;在最大数和最小数之间)。
输入格式:
请在一行中输入10整数,数据间以空格为间隔。
再在一行中输入1个待插入的整数。
输出格式:
将插入前后排好的有序序列分别在一行内输出,每个数的显示格式:占3位,右对齐。
请应用数组存储用户输入的10个整数,编写算法将该数组按照从小到大的顺序排列好。用户再输入1个整数,编写代码把它插入原数列中,要求仍然保持从小到大有序。
编写程序时应考虑到所插入数的各种可能性(比原来所有的数都小;比原来所有的数都大;在最大数和最小数之间)。
输入格式:
请在一行中输入10整数,数据间以空格为间隔。
再在一行中输入1个待插入的整数。
输出格式:
将插入前后排好的有序序列分别在一行内输出,每个数的显示格式:占3位,右对齐。
#include <stdio.h>
void bsort(int *a,int n)
{
int i,j,t;
for(i=0;i<n-1;i++)
for(j=0;j<n-i-1;j++)
{
if(a[j] > a[j+1])
{
t = a[j];
a[j] = a[j+1];
a[j+1] = t;
}
}
}
int main()
{
int a[11],i,j,d;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
bsort(a,10);
scanf("%d",&d);
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("\n");
for(i=0;i<10;i++)
{
if(a[i] > d)
{
for(j=10;j>i;j--)
a[j] = a[j-1];
a[i] = d;
break;
}
}
if(i==10)
a[10] = d;
for(i=0;i<11;i++)
printf("%3d",a[i]);
return 0;
}