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 用verilog实现tanh函数和softplus函数
  • ¥15 Hadoop集群部署启动Hadoop时碰到问题
  • ¥15 求京东批量付款能替代天诚
  • ¥15 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 QTableWidget重绘程序崩溃
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站