姜肆爷 2021-10-16 19:13 采纳率: 76%
浏览 416
已结题

Visual Studio Code 出现segmentation fault

这是PTA乙级1019的代码,我在网站上运行时没有问题,但在自己的电脑上的VS Code上运行时就显示segmentation fault,这是为什么
输入示例:6767

#include <stdio.h>
#define MAXSIZE 4

void swap( int * a, int * b);

int main(void){
    int n;
    int max;
    int min;
    int N[MAXSIZE] = {0};

    scanf("%d", &n);
    N[0] = n/1000;  //如何取得各位上的数字
    N[1] = (n/100)%10;
    N[2] = (n/10)%10;
    N[3] = n%10;

    if((N[0]==N[1])&&(N[0]==N[2])&&(N[0]==N[3])){  
        printf("%04d - %04d = 0000",n ,n);
    }

    else{
        do{
            int tag = 0;
            if( tag != 0){
                printf("\n");
            }
            for( int p = MAXSIZE-1; p>=0; p--){  //从小到大排序
                int flag = 0;
                for( int i=0; i<p; i++){
                    if( N[i]>N[i+1]){
                        swap( &N[i], &N[i+1]);
                        flag = 1;
                    }  
                }
                if( flag == 0){
                    break;
                }
            }

            max = N[3]*1000 + N[2]*100 + N[1]*10 + N[0];
            min = N[0]*1000 + N[1]*100 + N[2]*10 + N[3];
            n = max - min;

            N[0] = n/1000;  //如何取得各位上的数字
            N[1] = (n/100)%10;
            N[2] = (n/10)%10;
            N[3] = n%10;
            printf("%04d - %04d = %04d", max, min, n);  
            tag++;
        }while( n != 6174);
    }

    return 0;
}

void swap( int * a, int * b){
    int * t;
    *t = *a;
    *a = *b;
    *b = *t;
}
  • 写回答

1条回答 默认 最新

  • 快乐鹦鹉 2021-10-16 19:21
    关注
    void swap( int * a, int * b){
        int t;
        t = *a;
        *a = *b;
        *b = t;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月24日
  • 已采纳回答 10月16日
  • 创建了问题 10月16日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵