m0_61935954 2021-11-03 20:30 采纳率: 81.8%
浏览 33
已结题

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

img

img

  • 写回答

2条回答 默认 最新

  • 广大菜鸟 2021-11-03 20:38
    关注

    第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");
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月11日
  • 已采纳回答 11月3日
  • 创建了问题 11月3日