gpt4 book ai didi

c - 为什么会出现段错误以及如何解决此问题?

转载 作者:行者123 更新时间:2023-11-30 20:29:42 24 4
gpt4 key购买 nike

使用至少 4 个函数进行冒泡排序的 C 程序。(输入、输出、计算、主)

  • 不允许使用全局变量。
  • compute 中没有 printfscanf
  • main 中没有 printfscanf
  • 输入不应调用计算
  • compute 不应调用output

我还没有真正理解指针和函数。

    #include <stdio.h>

void input(int* size, int* arr[])
{
printf("Enter the size of the array: ");
scanf("%d",size);

printf("Enter the elements of the array\n");
for(int i = 0;i < *size; i++)
{
scanf("%d", arr[i]);
}
}

void swap(int *x,int *y)
{
int temp = *x;
*x = *y;
*y = temp;
}

void bubble_sort(int arr[100],int size)
{
for(int i = 0;i < size - 1;i++)
{
for(int j = 0;j < size - 1 - i;j++)
{
if(arr[j] > arr[j+1])
{
swap(&arr[j],&arr[j+1]);
}
}
}
}

void output(int size,int* arr)
{
printf("Sorted array\n");
for(int i = 0;i < size;i++)
{
printf("%d",arr[i]);
}
}

int main()
{

int* input_values[50];
int size;
input(&size, input_values);
bubble_sort(size,*input_values);
output(size, *input_values);
return 0;
}

没有错误,但显示段错误。我该如何解决这个问题?

最佳答案

所以你的问题在这里:

scanf(" %d", arr[i]);

您必须将其更改为:

scanf(" %d", &arr[i]);

这是主要问题,但还有很多其他问题。此外,您还必须更改

中参数的顺序
bubble_sort(size,*input_values);

bubble_sort(input_values,size); 

output(size, *input_values); 

output(size, input_values);

此外,为了使其正常工作,我更改了

scanf("%d", &arr[i]);

scanf(" %d", &arr[i]);

关于c - 为什么会出现段错误以及如何解决此问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56841147/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com