Файл содержит целые числа. Определить каких чисел в файле больше: кратных двум или кратных трем - C (СИ)
Формулировка задачи:
Файл содержит целые числа. Определить каких чисел в файле больше: кратных двум или кратных трем.
Решение задачи: «Файл содержит целые числа. Определить каких чисел в файле больше: кратных двум или кратных трем»
textual
Листинг программы
#include <stdio.h>
#define FILE_NAME "numbers.txt"
int main(void) {
FILE * file;
int current, multipleof2, multipleof3;
if ( ! ( file = fopen(FILE_NAME, "r") ) ) {
fprintf(stderr, "Can't open input file!\n");
return 1;
}
multipleof2 = multipleof3 = 0;
while ( fscanf(file, "%d", ¤t) == 1 ) {
if ( current % 2 == 0 )
++multipleof2;
if ( current % 3 == 0 )
++multipleof3;
}
if ( ferror(file) || fclose(file) ) {
fprintf(stderr, "Something's wrong with input file!\n");
return 1;
}
printf("The number of multiples of 2 is %s multiples of 3.\n", ( multipleof2 < multipleof3 ) ? "less than" : ( multipleof2 > multipleof3 ) ? "more than" : "same as");
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами и вывода информации в консоль.
- Объявление имени файла, в котором содержатся числа.
- Проверка на открытие файла и вывод сообщения об ошибке в случае неудачного открытия.
- Инициализация переменных, которые будут считать количество чисел, кратных двум и трем.
- Чтение чисел из файла и проверка, является ли каждое число четным или нечетным (с помощью оператора % — остаток от деления).
- Увеличение счетчика, если число кратно двум или трем.
- Проверка на ошибки при чтении из файла и его закрытии.
- Вывод сообщения о количестве чисел, кратных двум и трем.
- Оператор
less than,more thanилиsame asвыводит сообщение о том, каких чисел больше.