Ошибки — не страшно, учитесь пользоваться отладчиком.
Разберитесь наконец с консольным вводом/выводом, проблемы с этим. Точнее, с бездумным использованием функции
scanf(). Прототип этой функции выглядит примерно так (см. stdio.h):
int scanf(const char *format, ...);
Необходимо понимать, что компилятор при компиляции имеет возможность проверить тип только первого параметра, а за многоточием здесь скрывается последовательность параметров-
указателей на переменные, где будут сохранены результаты разбора ввода согласно форматной строке. Постоянные ошибки начинающих:
scan("%ld%ld", N, n) (правильно
scan("%ld%ld", &N, &n)) — введённое целое значение сохраняется по адресу, который суть значение переменной N, в данном случае 0; неправильная спецификация формата — переменная декларирована как
float, но при вызове
scanf используется
"%ld" (см. переменные a, b, c).
Также обратите внимание на вызовы функции
printf("%ld", "N") (ах, это сладкое слово — copy-paste), для вывода строк используется спецификатор формата
"%s".
А ещё лучше сразу пользоваться потоками ввода/вывода, и голова не болит от спецификаций формата:
int N, n;
cin >> N >> n;
float a, b, c;
cin >> a >> b >> c;
cout << 'Y' << endl;
В этом случае для работы с файлами используйте перенаправление ввода/вывода:
Код:
МояПрограмма < input.txt > output.txt