Удалить из файла все простые числа - C (СИ)
Формулировка задачи:
Дан файл, содержащий целые числа (тип unsigned int). Удалить из файла все простые числа.
Решение задачи: «Удалить из файла все простые числа»
textual
Листинг программы
#include <stdio.h>
int f_simple(int z)
{if (z>=2)
for (int i=2;i<z;i++)
if (z%i==0) return(1);
return(0);
}
int main()
{FILE *f;
unsigned int k[200];
int i=-1;
if (!(f=fopen("Input.txt","r")))
return(-1); //esli oshibka
else {
while (!feof(f)) {i++; fscanf(f,"%d",&k[i]);}
fclose(f);}
if (!(f=fopen("Output.txt","w")))
return(-1); //esli oshibka
else {
for (int j=0;j<=i;j++)
if (f_simple(k[j])==1) fprintf(f,"%d\n",k[j]);
fclose(f);}
}
Объяснение кода листинга программы
Вот что делается в этом коде:
- В функции f_simple(int z): Функция принимает целое число z в качестве аргумента и проверяет, делится ли оно на любое число от 2 до z-1 без остатка. Если делится, то возвращает 1, иначе возвращает 0.
- В функции main():
Функция открывает файл
Input.txtдля чтения и сохраняет его указатель в переменной f. Затем она читает числа из файла и сохраняет их в массиве k. После чтения всех чисел, функция закрывает файл. - Затем функция открывает файл
Output.txtдля записи и сохраняет его указатель в переменной f. - Далее, в цикле от 0 до i (где i - это количество прочитанных чисел):
Функция проверяет, является ли текущее число простым с помощью функции f_simple. Если число простое, оно записывается в файл
Output.txt. - В конце функция закрывает файл
Output.txt. - Если произошла ошибка при открытии или чтении/записи файлов, программа возвращает -1.