ЦЕЛИ:Программа печатает навсегда, когда я запускаю ее. Ошибка с массивом?
Задача 1
Программа должна читать номера из фи ля под названием «prob1 input.dat», который имеет следующий формат:
(number_of_entries) (entry1) (entry2). ..
Это означает, что первая строка файла содержит количество записей, предоставленных файлом. Следующие строки определяют записи, в которых каждая строка содержит одну запись. В нашем случае каждая запись будет положительным целым числом. Программа должна читать все записи и хранить их в массиве. Затем программа должна проверять каждое значение в массиве, если оно является простым числом или нет, и распечатать результат в файл с именем «prob1 output.dat». Этот файл должен иметь столько строк, сколько номеров, предоставленных файлом «prob1 input.dat». В каждой строке выходного файла программа должна печатать номер, а затем «является простым числом» или «не является простым числом».
КСТАТИ, все числа в файле больше, чем 25
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
FILE *fptr;
char prob1_input[] = "prob1_input.dat";
int terms,i;
int x[]={};
fptr = fopen(prob1_input, "r");
if (fptr == NULL)
printf("Error in opening file %s",prob1_input);
terms = x[0];
for(i=0;i<terms;i++)
{
fscanf(fptr,"%d",&x[i]);
terms = x[0];
for(i=1;x[i]!=2;i++)
{
if(x[i]%2 == 0 || x[i]%3 == 0 || x[i]%5 == 0 || x[i]%7 == 0)
{
printf("%d is not a prime number\n",x[i]);
break;
}
else if (x[i] == 2 || x[i] == 3 || x[i] == 5 || x[i] == 7)
{
printf("%d is a prime number\n",x[i]);
break;
}
else
{
printf("%d is not a prime number\n",x[i]);
break;
}
}
}
return 0;
}
Скомпилируйте все предупреждения и информацию об отладке ('gcc -Wall -Wextra -g'). Затем узнайте, как использовать отладчик ('gdb'). BTW вы должны проверить результат 'fscanf'. –
Что вы ожидаете от этого 'int x [] = {};' делать? – alk
Я изо всех сил пытаюсь найти слова для 'int x [] = {};' – WhozCraig