题目
在主函数中输入m(m<20)个整数,编写函数用选择法升序排序;
插入一个整数t,不使用排序方法使其仍为升序序列,并将升序序列输出。
Input&Output
显示屏提示:Please input m:
样例输入 : 8
显示屏提示:Please input m integers:
样例输入 : 3 9 10 1 25 44 32 6
显示屏提示:Input the integer you want to insert:
样例输入 : 11
样例输出 : 1 3 6 9 10 11 25 32 44
代码
#include<stdio.h>
#include<string.h>
int m;
void fun(int a[],int x)
{
int w=0,i,j;int b[23];
while(w<m)
{
if(a[w]<x&&a[w+1]>x) {break;}
else{w++;}
}
for(i=0;i<m+1;i++)
{
if(i<w+1)
{ b[i]=a[i];}
else if(i==w+1)
{ b[i]=x;}
else if(i>w+1)
{ b[i]=a[i-1];}
}
for(i=0;i<m+1;i++)
{printf("%d ",b[i]); }
return 0;
}
int main()
{
int i,j,t;
int a[22];
int Temp,Pos;
printf("Please input m: \n");
scanf("%d",&m);
printf("Please input m integers: \n");
for(i=0;i<m;i++){
scanf("%d",&a[i]);
}
for(i=0;i<m-1;i++)
{
Temp = a[i];
Pos = i;
for(j=i+1;j<m;j++)
{
if(a[j]<Temp)
{
Temp= a[j];
Pos= j;
}
}
a[Pos] = a[i];
a[i] = Temp;
}
printf("Input the integer you want to insert:\n");
scanf("%d",&t);
fun(a,t);
return 0;
}