将数组中的最大值与第一个元素交换位置,最小值与最后一个元素交换位置

#include <stdio.h>#include <stdlib.h>int main(){ int i,a[10]; for(i=0;i<10;i++) { scanf("%d",&a[i]); } fun(a); for(i=0;i<10;i++) { printf("%d",a[i]); } return 0;}int fun(int x[]){ int t,j; int *pmax,*pmin; for(j=0;j<10;j++) { if(x[j]>*pmax) { pmax=&x[j]; } if(x[j]<*pmin) { pmin=&x[j]; } } t=x[0];x[0]=*pmax;*pmax=t; t=x[9];x[9]=*pmin;*pmin=t;}
请各位大佬帮看一下,为什么会提示控件达到非空函数末尾,然后运行不出来,应该怎么解决这个问题?
谢谢大家啦

参考如下:

#include <stdio.h>
#include <stdlib.h>

void fun(int x[], int len);

int main()
{ 
    int i,a[10]; 
    for(i=0;i<10;i++) 
    { 
        scanf("%d",&a[i]); 
    } 

    fun(a, 10); 

    for(i=0;i<10;i++) 
    { 
        printf("%-3d",a[i]); 
    } 
    return 0;
}

void fun(int x[], int len)
{ 
    int t,j; 

    int *pmax, *pmin; 

    pmax = x;
    pmin = x;

    for(j=0;j<len;j++) 
    { 
        if(x[j]>*pmax) 
        { 
            pmax = &x[j]; 
        } 

        if(x[j]<*pmin) 
        { 
            pmin = &x[j]; 
        } 
    } 
    t=x[0];
    x[0]=*pmax;
    *pmax=t; 

    t=x[len - 1];
    x[len - 1]=*pmin;
    *pmin=t;
}

img


如有帮助,欢迎采纳哈!

在这里插入图片描述

本人的开源项目,欢迎star支持下!!!