指针的运用,函数调用

img

#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int arr[n]={0};
max_min(arr);
return 0;
}
void max_min(int a[],int n,int *pamx,int *pmin)
{

int i,j=0,t=0;
for(i=0;i<n;i++)
{
    for(j=i+1;j<n;j++)
    {
        if(a[i]<=a[j])
        t=a[i];
        a[i]=a[j];
        a[j]=a[i];
    }
}
pamx=&a[0];
pmin=&a[n-1];
printf("%d\n",*pamx);
printf("%d\n",*pmin);

}
为啥函数不可已用,可以写一下代码吗?

你这个能通过编译麻

1、你的函数在定义之前使用,需要再前面声明一下
2、函数调用是参数传递不对,
3、函数定义时写的不太对,*pamx, *pmin应该在函数内部定义,而不是由参数传入。
代码修改如下,我的编译器不能定义含变量的数组,也没运行过,你试试行不行:

#include<stdio.h>
void max_min(int a[], int n);
int main()
{
    int n;
    scanf("%d", &n);
    int arr[n] = { 0 };
    max_min(arr,n);
    return 0;
}
void max_min(int a[], int n)
{
    int *pamx, *pmin;
    int i, j = 0, t = 0;
    for (i = 0; i < n; i++)
    {
        for (j = i + 1; j < n; j++)
        {
            if (a[i] <= a[j])
                t = a[i];
            a[i] = a[j];
            a[j] = a[i];
        }
    }
    pamx = &a[0];
    pmin = &a[n - 1];
    printf("%d\n", *pamx);
    printf("%d\n", *pmin);
}