Определите минимальное число монеток, которые нужно перевернуть как остальные - 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 - результат работы программы