你能告訴我我的代碼有什么問題嗎?我得到這個特定輸入(以及更多)的分段錯誤,但很少有它運行良好?
我錯過了什么?
void sortArr(int a[], int n)
{
int x,y;
for(int i=0;i<n;i )
{
if(a[i]==0)
{
x ;
}
else if(a[i]==1)
{
y ;
}
}
int i;
for(i=0;i<x;i )
{
a[i]=0;
}
for(i=x;i<(x y);i )
{
a[i]=1;
}
for(i=(x y);i<n;i )
{
a[i]=2;
}
// Print the sorted array
printArr(a, n);
}
// Driver code
int main()
{
int arr[] = {0,2,1,2,0,2,2,0,0,1};
int n = sizeof(arr) / sizeof(int);
sortArr(arr, n);
return 0;
}
uj5u.com熱心網友回復:
在使用變數之前初始化它們:
int x = 0, y = 0;
如果您不初始化變數,那么它們將具有不確定的值,這可能導致未定義的行為,并且在某些情況下,這也可能導致錯誤。(例如使用 MSVC)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/435777.html
上一篇:MergeSort實作越界
下一篇:繪制Mandelbrot集
