欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

简单易懂!五个步骤详解C语言实战:输入数组后,交换最大值和首个元素,以及最小值和末尾元素,最终输出整个数组的操作过程

最编程 2024-02-21 09:46:52
...

题目:输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

 

你来找代码就说明你已经思考过,实在是写不出来,我也不说废话,直接代码解析:



第一步:首先声明加输入:

 
  int arry[5],i,j=0,k=0;
  int max,min;
 
  printf("请输入十个数:\n");
  for(i=0;i<5;i++)
  {
    scanf("%d",&arry[i]);
  }
  
 


第二步:由于我们要找最大和最小,首先赋初值:

 //由于前面令j=0,并且我们不知道这数的大小,所以我们把数组第一个令为最大
 max=arry[j];
 
//同样也把第一个令为最小
 min=arry[k];


第三步:接下来就是找到最大值和最小值:

 
  for(i=0;i<5;i++)
    {
        //单循环找到最大值的位置,并把值用max记录下来
    if(arry[j]<arry[i])
    {
      j=i;
      max=arry[i];
    }
 
        //同样找到最小值的位置,并把值min记录下来
    if(arry[k]>arry[i])
    {
      k=i;
      min=arry[i];
    }
 
   }
  
 


第四步:然后根据题意交换: 最大的与第一个元素交换,最小的与最后一个元素交换

  //最大值与第一个交换
    arry[j]=arry[0];
    arry[0]=max;
 
    //最小值与最后一个交换
  arry[k]=arry[4];
    arry[4]=min;



第五步:最后输出:

for(i=0;i<5;i++)
    {
    printf("%d ",arry[i]);
  }


完整代码如下:

#include<stdio.h>
int main()
{
  int arry[5],i,j=0,k=0,t;
  int max,min;
 
  printf("请输入十个数:\n");
  for(i=0;i<5;i++)
  {
    scanf("%d",&arry[i]);
  }
  
  max=arry[j];
    min=arry[k];
 
  for(i=0;i<5;i++)
    {
    if(arry[j]<arry[i])
    {
      j=i;
      max=arry[i];
    }
    if(arry[k]>arry[i])
    {
      k=i;
      min=arry[i];
    }
  }
  
  arry[j]=arry[0];
    arry[0]=max;
 
  arry[k]=arry[4];
    arry[4]=min;
 
  for(i=0;i<5;i++)
    {
    printf("%d ",arry[i]);
  }
 
  return 0;
}