选择法升序排序+函数插入任一数字排序

题目

在主函数中输入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;
 }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值