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

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Открываем файлы для чтения и записи
  3. Считываем количество монет из файла input.txt
  4. Инициализируем счётчики S0 и S1 нулями
  5. Проходим циклом по всем монетам, считывая их количество из файла
  6. Увеличиваем соответствующий счётчик (S0 или S1) в зависимости от того, положительное ли считанное число
  7. Записываем в файл output.txt минимальное значение счётчиков S0 и S1
  8. Закрываем файлы
  9. Возвращаем 0, чтобы указать, что программа успешно завершилась Список переменных:
  10. n - количество монет
  11. x - количество монет в текущей строке
  12. S0 - количество монет с отрицательным значением
  13. S1 - количество монет с положительным значением
  14. i - счётчик монет в цикле
  15. fin - указатель на файл с данными для чтения
  16. fout - указатель на файл для записи результатов
  17. output - результат работы программы

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы