它无需冒泡排序部分即可工作。但是当我进行冒泡排序时,它说核心已被倾倒。我找不到错误,所以我希望有人能帮助我。
#include<stdio.h>
#define lim 2000
int main()
{
int a[lim],i,j,t;
FILE *pf;
pf=fopen("ulaz.txt","r");
for(i=0;i<lim;i++)
{
fscanf(pf,"%d",&a[i]);
}
fclose(pf);
for(i=lim-1;i>=0;i--)
{
for(j=1;j<=i;i++)
{
if(a[i]>a[i-1])
{
t=a[i];
a[i]=a[i-1];
a[i-1]=a[i];
}
}
}
for(i=0;i<lim;i++)
{
printf("%d ",a[i]);
}
puts("\n");
return 0;
}
最佳答案
for(j=1;j<=i;i++)
应该是
for(j=1;j<=i;j++)
否则我在内循环的第一次迭代时会超过 lim-1
关于c - 为什么会出现核心转储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21316790/