Nefelibata_2023 2022-10-12 00:15 采纳率: 87.5%
浏览 30
已结题

C语言实现快速排序无法正常运行

问题遇到的现象和发生背景

敲打快速排序,程序无法正常运行

用代码块功能插入代码,请勿粘贴截图
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main() {
    int N;
    int begin;
    int end;
    scanf("%d", &N);
    int arr[N];
    for (int i = 0; i < N; i++) {
        scanf("%d", &arr[i]);
    }
    Quick_Sort(arr, 0, N - 1);
    for (int j = 0; j < N; j++) {
        printf("%d", arr[j]);
        if(j<N)
        printf(" ");
    }
}
void Quick_Sort(int arr[], int begin, int end) {
    if (begin > end)
        return;
    int tmp = arr[begin];
    int i = begin;
    int j = end;
    while (i != j) {
        while (arr[j] >= tmp && j > i) {
            j--;
        }
        while (arr[i] <= tmp && i < j) {
            i++;
        }
        if (i < j) {
            int t = arr[j];
            arr[j] = arr[i];
            arr[i] = t;

        }
    }
    arr[begin] = arr[i];
    arr[i] = tmp;
    Quick_Sort(arr, begin, i - 1);
    Quick_Sort(arr, i + 1, end);
}

运行结果及报错内容

img

img

  • 写回答

2条回答 默认 最新

  • 於黾 2022-10-12 08:11
    关注

    1.int arr[N];C99以后才可以这样用,否则你需要使用malloc语句来分配内存
    2.在c的语法里,在每个块中,所有的声明必须在所有的代码之前,你不可以把scanf放到声明前面去

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥15 matlab答疑 关于海上风电的爬坡事件检测
  • ¥88 python部署量化回测异常问题
  • ¥30 酬劳2w元求合作写文章
  • ¥15 在现有系统基础上增加功能
  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄