Определите минимальное число монеток, которые нужно перевернуть как остальные - C (СИ)
Формулировка задачи:
На столе лежат n монеток. Некоторые из них лежат вверх решкой, а некоторые – гербом. Определите минимальное число монеток, которые нужно перевернуть, чтобы все монетки были повернуты вверх одной и той же стороной.
Входные данные
В первой строке входного файла INPUT.TXT записано натуральное число N (1 <= N <= 100) – число монеток. В каждой из последующих N строк содержится одно целое число – 1 если монетка лежит решкой вверх и 0 если вверх гербом.
Выходные данные
В выходной файл OUTPUT.TXT выведите минимальное количество монет, которые нужно перевернуть.
Помогите найти ошибки, так как мое решение выводит все время 0.
#include <stdio.h> #include <stdlib.h> int main() { long n,x,S0,S1,i; FILE *fin, *fout; fin=fopen("input.txt","r"); fout=fopen("output.txt","w"); fscanf(fin, "%ld",&n); S0 = S1 = 0; for (i=1;i<=n;i++) fscanf(fin, "%ld",&x); if (x==0) S0++; else S1++; fprintf(fout, "%ld",min(S0,S1)); fclose(fin); fclose(fout); return 0; }
Решение задачи: «Определите минимальное число монеток, которые нужно перевернуть как остальные»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main(){ long n,x,S0,S1,i; FILE *fin, *fout; fin=fopen("input.txt","r"); fout=fopen("output.txt","w"); fscanf(fin, "%ld",&n); S0 = S1 = 0; for (i=1;i<=n;i++){ fscanf(fin, "%ld",&x); x>0?S0++:S1++; } fprintf(fout, "%ld",S0<S1?S0:S1); fclose(fin); fclose(fout); return 0; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Открываем файлы для чтения и записи
- Считываем количество монет из файла input.txt
- Инициализируем счётчики S0 и S1 нулями
- Проходим циклом по всем монетам, считывая их количество из файла
- Увеличиваем соответствующий счётчик (S0 или S1) в зависимости от того, положительное ли считанное число
- Записываем в файл output.txt минимальное значение счётчиков S0 и S1
- Закрываем файлы
- Возвращаем 0, чтобы указать, что программа успешно завершилась Список переменных:
- n - количество монет
- x - количество монет в текущей строке
- S0 - количество монет с отрицательным значением
- S1 - количество монет с положительным значением
- i - счётчик монет в цикле
- fin - указатель на файл с данными для чтения
- fout - указатель на файл для записи результатов
- output - результат работы программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д