老是报错,请求解答,是函数定义出问题了吗

img

img

第12行if和第十四行那个else都要用{}把后面的分支的内容单独地包起来,不然if内读完了,继续读else后面内容
还有表示数组长度,sizeof(array)/sizeof(int),数组字节除以对应对应类型的字节才是数组长度

void swap(int*array,int n){
    if(array==NULL) {
        printf("error\n");
        return;
    }else{
        int tmp=array[0];
        array[0]=array[n-1];
        array[n-1]=tmp;
    }
}

也可以这样,简短地装b

#include<stdio.h>
#include<stdlib.h>
#define SWAP(A,B) {A^=B;B^=A;A^=B;}
void swap(int*array,int n){
    if(array==NULL) {
        printf("error\n");
        return;
    }else{
        SWAP(*array,*(array+(n-1)));
    }
}
 
int main(){
    int a[3]={1,2,3};
    swap(a,3);
    for(int i=0;i<3;i++)
        printf("%d\n",a[i]);
    system("pause");
}


应该可能是return前面那排缺;