Я написал некоторый алгоритм сортировки.Для простоты я выбрал небольшой массив с уникальными значениями.Всякий раз, когда я компилирую код несколько раз, я получаю правильный ответ, но иногда я получаю другой ответ с ошибкой.Я хочу знать, что является причиной проблемы.Напоминаю, что я использую тот же код.
Я использую GCC 4.2.1
Я пробовал на онлайн-компиляторе, он дает правильный ответ.
#include <stdio.h>
int main(){
int i,j,k,l;
int A[10]={2,10,6,24,1,-5,23,0,12,-100};
for(i=0;i<10;i++){
if(A[i+1]<A[i]){
l=A[i+1];
for(j=0;j<=i;j++){
if((A[j]<A[i+1])&&(A[j+1]>A[i+1])){
for(k=i;k>=j;k--){
A[k+1]=A[k];
}
A[j+1]=l;
}
else if(A[0]>A[i+1]){
for(k=i;k>=0;k--){
A[k+1]=A[k];
}
A[0]=l;
}
}
}
}
for(i=0;i<10;i++){
printf("%d\n",A[i]);
}
}
иногда он дает: {-100, -5, 0, 1, 2, 6, 10, 12, 23, 24,} Иногда он дает: -791216026, -100, -5, 0, 1, 2, 6,10, 12, 23, прерывание прерывания: 6