c语言(数组)

交换算法(将最小值换到第一位,最大值换到最后一位)

#include<stdio.h>

void main()
{  int o=0;
  int buf[10];          接收用户输入的数组
  for(;o<10;o++)
    {
      scanf("%d",&buf[o]);
    }


  int i=0,j=0,k=0,a=0,b=0;
  for(;i<10;i++)
   {
     if(j<buf[i])
     {
       j=buf[i];    得到最大值
     }                        
     if(k>buf[i])
     {
        k=buf[i];      得到最小值
     }
   }
   printf("%d %d\n",j,k);
   for(i=0;i<10;i++)
    {
       if(j==buf[i])
        {
           a=i;                        得到最大值的位置
           printf("%d\n",a);


        }
        if(k==buf[i])
        {
           b=i;  得到最小值的位置
          printf("%d\n",b);
        }


    } }
   buf[0]=buf[0]+buf[b];
   buf[b]=buf[0]-buf[b];
   buf[0]=buf[0]-buf[b];    将最小值换到第一位
   buf[9]=buf[9]+buf[a];
   buf[a]=buf[9]-buf[a];
   buf[9]=buf[9]-buf[a];   将最小值换到最后位
  for(i=0;i<10;i++)
  {
     printf("%d ",buf[i]);
  }
}

     对调算法(将数组元素对调)

    #include<stdio.h>
void main()
{
   int buf[10]={1,2,3,4,5,6,7,8,9};
   int i=0;
   for(;i<5;i++)

   {  

    buf[10]=buf[8-i];    将数组元素按最中间的元素对调

      buf[8-i]=buf[i];
      buf[i]=buf[10];

   }
   buf[10]=0;
   int j=0;
   for(;j<9;j++)
      {
        printf("%d ",buf[j]);
      }
}

猜你喜欢

转载自blog.csdn.net/moon_rern/article/details/81065328