Я получаю сообщение об ошибке Аномальное завершение программы при выполнении этого кода.Аномальное завершение программы в turbo c 3.0 Окно DOS
Целью программы является считывание массива чисел из файла list.txt
и выполнение рекурсивного двоичного и рекурсивного линейного поиска на этом загруженном массиве.
Вот мой код:
#include <stdio.h>
#include <conio.h>
void menu();
int a[30000],n;
void main()
{
FILE *fp;
int i, ch;
fp = fopen("list.txt", "r");
if(fp == NULL)
{
printf("\nCant read\n");
exit(0);
}
for(i = 0; i < n; i++)
fscanf(fp, "%d", &a[i]);
fclose(fp);
for(i = 0; i < n; i++)
printf(" %d ", a[i]);
menu();
scanf("%d", &ch);
if(ch == 1)
{
printf("ch1\n");
}
else if(ch == 2)
{
printf("ch2\n");
}
else
{
exit(1);
}
}//end main
void menu()
{
printf("\nEnter the number of elements in array\n");
scanf("%d", &n);
printf("\n1.Linear Search\n2.Binary Search\n3.Exit\nEnter your choice\n");
}
У меня есть логика моего выбора 1 и 2. Мне нужно знать, что случилось с моим выше кодом. Пожалуйста, помогите мне в этом
Вопросы, требующие помощи по отладке («почему этот код не работает?») Должны включать в себя желаемое поведение, конкретную проблему или ошибку и кратчайший код, необходимый для воспроизведения в самом вопросе. Вопросы без четкого описания проблемы не полезны другим читателям. См.: Как создать [mcve]. – Olaf
И форматируйте/отформатируйте свой код правильно. Это беспорядок. – Olaf
Вы не устанавливаете 'n', пока не назовете' menu', поэтому перед этим вызовом 'n' будет ноль, и в массив ничего не будет прочитано. –