Я не могу найти ошибку в моем коде. Когда я запустил его, он говорит о неисправности сегментации (ядро сбрасывается). Я читал темы, но не мог понять свою ошибку. Это в соответствующем каталоге. Я был бы очень благодарен, если кто-то может мне помочь.Ошибка сегментации (ядро сбрасывается) в моем коде
#include<stdio.h>
#define MAX 50
int main(){
int i,n,j,t;
double a[MAX];
do{
printf("enter a lenght of your array");
scanf("%d", &n);
}while (n<1 || n>MAX);
printf("enter the elements of your array");
for (i=0; i<n; i++) {
printf("a[%d]= ", i);
scanf("%lf", &a[i]);
}
for(i=0;i<n/2;i++){
for(j=n-1;j>n/2;j++){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
for(i=0; i<n; i++) {
printf("%lf", a[i]);
}
return 0;
}
Выполнить в отладчике, чтобы поймать аварию, и увидеть, где в коде это происходит. Затем проверьте значения переменных, чтобы попытаться выяснить, почему это происходит. –
Вы должны проверить, что используемые индексы ('i' и' n') не находятся за пределами границ ('0 <= i
agold
Да, используя отладчик, вы узнаете, что строка сбойная: 'a [i] = a [j];'. Использование этого отладчика (или просто добавление printf значений i и j) показало бы вам, что j всегда увеличивается. В какой-то момент «a [j]' сбой. – hexasoft