c语言,请写出本题代码

img

自定义方法内遍历数组,记录最大值和最小值所对应的索引,最后交换一下。

#include<stdio.h>
void  swapMinMax(int *a, int n)
{
    int  maxValue = a[0], minValue = a[0], maxPos = 0, minPos = 0;
    int  i;
    for (i=1; i<n; i++)
    {
        if (a[i] > maxValue)
        {
            maxValue =a[i];
            maxPos = i;
        }
        if (a[i] < minValue)
        {
            minValue = a[i];
            minPos = i;
       }
  }
      //交换
    int temp=a[maxPos];
    a[maxPos]=a[minPos];
    a[minPos]=temp;
}
int main()
{
    int cards[20],n;
    scanf("%d",&n);
    for(int i=0;i<n;i++)
       scanf("%d",&cards[i]);
    swapMinMax(cards,n);
    for(int i=0;i<n;i++)
       printf("%d ",cards[i]);
    return 0;
}

void SwapMinMax(int a[],int n)
{
    int temp,i,max,min,l1,l2;
    max=a[0];
    min=a[0];
    l1=0;
    l2=0;
    for(i=1;i<n;i++)
    {
        if(a[i]>max)
        {
            max=a[i];
            l1=i;
        }
        if(a[i]<min)
        {
            min=a[i];
            l2=i;
        }
    }
    temp=a[l1];
    a[l1]=a[l2];
    a[l2]=temp;
    
}
int main()
{
    int a[100],i,n;
    scanf("%d",&n);
    for(i=0;i<n;i++)
       scanf("%d",&a[i]);
    SwapMinMax(a,n);
    for(i=0;i<n;i++)
       printf("%d ",a[i]);
    return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632