求纠错,真的找不到错误了

#include<stdio.h>//1. 输入十个数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。要求写三个函数:输入十个数 ;数据处理;输出十个数
int main()
{
void cmax(int *x,int n);
void cmin(int *x,int n);
int a[10],p,i;
p=a;
printf("please enter 10 numbers:");
for(i=0;i<10;i++)
{scanf("%d,",p++);}
cmax(a,10);
cmin(a,10);
for(i=0;i<10;i++)
{printf("%d\t",
(p+i));}
return 0;
}

void cmax(int x,int n)
{
int i,j=0,max=0;
max=
(x+9);
for(i=0;i<10;i++)
{
if((x+i)>max)
max=
(x+i);
j=i;
}
max=*x;
x=(x+j);
*(x+j)=max;
}

void cmin(int x,int n)
{
int i,j=0,min=0;
min=x;
for(i=0;i<10;i++)
{
if(
(x+i)<min)
min=
(x+i);
j=i;
}
min=*x;
x=(x+j);
*(x+j)=min;
}

img

修改了一下,如下:


#include <stdio.h>
int main()
{
    void cmax(int *x,int n);
    
    void cmin(int *x,int n);
    
    int a[10],* p,i;
    

    
    printf("please enter 10 numbers:");
    
    for(i=0;i<10;i++)
    {
        scanf("%d,",&a[i]);
    }
    cmax(a,10);
    cmin(a,10);
    
    for(i=0;i<10;i++)
    {
        printf("%d\t",a[i]);
    }
    return 0;
}

void cmax(int * x,int n)
{
    int i,j=0,max=0;
    max=*(x+9);
    for(i=0;i<n;i++)
    {
        if(*(x+i)>max){
            max=*(x+i);
            j=i;
        }
        
    }
    
    *(x+j) = *(x+9);
    *(x+9)  = max;
    
    
}

void cmin(int* x,int n)
{
    int i,j=0,min=0;
    min=*x;
    for(i=0;i<n;i++)
    {
        if(*(x+i)<min){
            min=*(x+i);
            j=i;
        }
        
    }
    
    *(x+j) = *x;
    *x = min;

    
}