尝试运行程序时出现分段错误

斯塔克

该程序使用quicksort对数字进行排序,然后使用将负数和正数交替放置的代码。

#include<stdio.h>
#include<stdlib.h>

void swap(int *arr,int i,int j)
{
    int temp=arr[i];
    arr[i]=arr[j];
    arr[j]=temp;
}


int partition(int *arr,int left,int right)
{
    int temp=0;
    int i=left;
    int j=right;

    while(i<=j)
    {
        while(i<=right && arr[i]<=temp)
        i++;
        while(j>=left && arr[j]>=temp)
        j--;
        if(i<j)
        swap(arr,i,j);
    }
 return j;
}

void quick_sort(int *arr,int left,int right)
{
    if(left<right)
    {
        int pivot=partition(arr,left,right);
        quick_sort(arr,left,pivot-1);
        quick_sort(arr,pivot+1,right);
    }
    return ;
}

void nega(int *arr,int left,int right)
{
    int i;

    quick_sort(arr,left,right);

    for(i=0;i<right+1;i++)
    {
        if(arr[i]>=0)
        break;
    }
    int j=i;
    int k;
    for(i=1,k=j;i<j && k<=right;i+=2,k++)
    {
        int temp=arr[i];
        arr[i]=arr[k];
        arr[k]=temp;
    }
}


int main()
{
  int i,n;
  int arr[15];

  printf("enter the n:");
  scanf("%d",&n);

  for(i=0;i<n;i++)
  {
  printf("enter the element");
  scanf("%d",&arr[i]);
  }
    printf("debug");
   nega(arr,0,n-1);
    for(i=0;i<n;i++)
    printf("%d",arr[i]);
return 0;
}

在这里,代码要求用户输入n的值,并将n个元素放入数组中。如果n的值为1(即,对于一个元素),则工作正常。如果n的值> 1(对于1个以上的元素),则表明存在分段错误。可能在函数中某个位置无法访问。

但是,我不明白为什么printf("debug");在输入代码后就不能立即执行它。它在执行之前直接显示分段错误,而在之前printf("debug");没有发现任何分段错误的原因printf("debug");

有人可以指出我的问题吗,谢谢。

Arjen

回答您的第一个问题:打印被缓冲。因此,如果程序崩溃,则尚未刷新缓冲区,并且不会打印“ debug”。尝试打印到stderr以用于记录和错误目的:

fprintf(stderr, "Debug");

我也会尝试回答您有关段错误的问题。

更新:

如果arr中的所有值都大于零,这将导致负枢轴:

while(j>=left && arr[j]>=temp)
    j--;

如果您更改:

int temp = 0;

到:int temp = arr [left];

它不会给您带来细分错误,我想这就是您想要的。请注意,这不会修复您的排序算法,仅指定发生段错误的位置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

运行程序时出现分段错误

来自分类Dev

当我尝试运行此程序时出现分段错误错误

来自分类Dev

尝试运行WebView应用程序时出现错误

来自分类Dev

java.lang.NumberFormatException尝试运行程序时显示错误

来自分类Dev

尝试运行程序时仅在控制台中显示奇数错误

来自分类Dev

尝试运行程序时无法打开视图?

来自分类Dev

运行程序时出现错误

来自分类Dev

运行程序时出现未知错误

来自分类Dev

运行程序时出现逻辑错误

来自分类Dev

尝试运行Karma测试运行程序时未定义JASMINE

来自分类Dev

尝试运行以下程序时出现编译器错误

来自分类Dev

尝试运行应用程序时出现VS2015错误:无效的指针

来自分类Dev

Rails:尝试运行 rails 应用程序时出现冻结错误

来自分类Dev

尝试使用Intellij IDEA编译/运行程序时出现BEX错误

来自分类Dev

Monodevelop,尝试运行程序时“没有这样的文件或目录”

来自分类Dev

运行程序时出现语法错误(Python 3)

来自分类Dev

尝试运行Symfony应用程序时出现“无法打开输入文件:bin /控制台”错误

来自分类Dev

尝试运行 Angular 8 应用程序时出现“未捕获的错误:预期‘样式’为字符串数组”

来自分类Dev

尝试运行Java代码时程序顶部出现错误

来自分类Dev

每当尝试运行此LinkedList删除功能时,为什么会出现分段错误错误?

来自分类Dev

尝试运行iptables rhel6时出现分段错误(内核已转储)

来自分类Dev

尝试运行Kile在Linux Mint 19上出现分段错误

来自分类Dev

java.lang.NoClassDefFoundError:尝试运行程序时在hello.HelloWorld.main上的org / joda / time / LocalTime

来自分类Dev

尝试运行vNext示例应用程序时出现kpm restore问题

来自分类Dev

尝试运行Node.js应用程序时出现TypeError

来自分类Dev

尝试运行Spring Boot应用程序时出现问题

来自分类Dev

尝试运行Web应用程序时出现System.InvalidOperationException

来自分类Dev

尝试运行Clojure Web应用程序时出现java.lang.IllegalArgumentException

来自分类Dev

尝试运行Node.js应用程序时出现TypeError

Related 相关文章

  1. 1

    运行程序时出现分段错误

  2. 2

    当我尝试运行此程序时出现分段错误错误

  3. 3

    尝试运行WebView应用程序时出现错误

  4. 4

    java.lang.NumberFormatException尝试运行程序时显示错误

  5. 5

    尝试运行程序时仅在控制台中显示奇数错误

  6. 6

    尝试运行程序时无法打开视图?

  7. 7

    运行程序时出现错误

  8. 8

    运行程序时出现未知错误

  9. 9

    运行程序时出现逻辑错误

  10. 10

    尝试运行Karma测试运行程序时未定义JASMINE

  11. 11

    尝试运行以下程序时出现编译器错误

  12. 12

    尝试运行应用程序时出现VS2015错误:无效的指针

  13. 13

    Rails:尝试运行 rails 应用程序时出现冻结错误

  14. 14

    尝试使用Intellij IDEA编译/运行程序时出现BEX错误

  15. 15

    Monodevelop,尝试运行程序时“没有这样的文件或目录”

  16. 16

    运行程序时出现语法错误(Python 3)

  17. 17

    尝试运行Symfony应用程序时出现“无法打开输入文件:bin /控制台”错误

  18. 18

    尝试运行 Angular 8 应用程序时出现“未捕获的错误:预期‘样式’为字符串数组”

  19. 19

    尝试运行Java代码时程序顶部出现错误

  20. 20

    每当尝试运行此LinkedList删除功能时,为什么会出现分段错误错误?

  21. 21

    尝试运行iptables rhel6时出现分段错误(内核已转储)

  22. 22

    尝试运行Kile在Linux Mint 19上出现分段错误

  23. 23

    java.lang.NoClassDefFoundError:尝试运行程序时在hello.HelloWorld.main上的org / joda / time / LocalTime

  24. 24

    尝试运行vNext示例应用程序时出现kpm restore问题

  25. 25

    尝试运行Node.js应用程序时出现TypeError

  26. 26

    尝试运行Spring Boot应用程序时出现问题

  27. 27

    尝试运行Web应用程序时出现System.InvalidOperationException

  28. 28

    尝试运行Clojure Web应用程序时出现java.lang.IllegalArgumentException

  29. 29

    尝试运行Node.js应用程序时出现TypeError

热门标签

归档