带指针的分函数被跳过,不运行

题目要求在分函数中引用指针,但添加指针后不是指针调用冲突就是直接不运行。
题目大意:随机生成数组,分函数调用指针返回最大值和最小值。


#include"stdio.h"
#include"stdlib.h"

int *a;int n;int *max=0;int *min=0;int b[10];int s=1,d=1;

void fun(int *a,int n,int s,int d);

int main()
{
    a=b;
    for(n=0;n<10;n++)
        *(a+n)=rand()%100;
    printf("生成的随机数为:");
    for(n=0;n<10;n++)
        printf(" %d",*(a+n));
    putchar('\n\n');
    printf("数组最大数为:");
    fun(a,n,s,d);
    printf("%d\n数组最小数为:%d\n",s,d);
}

void fun(int *a,int n,int s,int d)
{
    
    for(n=1;n<10;n++)
    {
        if(*(a+n)>s)s=*(a+n);
        if(*(a+n)<d)d=*(a+n);
    }
}

添加的多余变量s,d是我在尝试修正,但是没有效果。
以上为编写的代码,望指正。

修改如下,供参考对照:

#include"stdio.h"
#include"stdlib.h"
void fun(int *a,int n,int *s,int *d);
int main()
{
    int b[10],*a,n,max=0,min=0;
    a=b;
    for(n=0;n<10;n++)
        *(a+n)=rand()%100;
    printf("生成的随机数为:\n");
    for(n=0;n<10;n++)
        printf(" %d",*(a+n));
    printf("\n\n");
    //putchar('\n\n');

    fun(a,10,&max,&min);
    printf("数组最大数为:%d,数组最小数为:%d\n",max,min);
    //printf("%d\n数组最小数为:%d\n",s,d);
    return 0;
}
void fun(int *a,int n,int *s,int *d)
{
    int i;
    *s=*a;*d=*a;
    for(i=0;i<n;i++)
    {
        if(*(a+i)>*s)*s=*(a+i);
        if(*(a+i)<*d)*d=*(a+i);
    }
}