Выдает ошибку для fscanf - C (СИ)
Формулировка задачи:
Ругается на строчку fscanf(fin, "%lf", &n); В чем может быть проблема?
#include <stdio.h> #include <math.h> int main() { double n, i; FILE *fin, *fout; fin=fopen("input.txt","r"); fout=fopen("output.txt","w"); fscanf(fin, "%lf", &n); i = 2; while (i<=sqrt(n)) if((int)n % (int)i == 0) { fprintf(fout, "%.0lf*",i); n = n/i; } else i = i+1; fprintf(fout, "%.0lf",n); fclose(fin); fclose(fout); return 0; }
Решение задачи: «Выдает ошибку для fscanf»
textual
Листинг программы
if((int)n % (int)i == 0)
Объяснение кода листинга программы
В представленном коде выполняется проверка условия, при котором целочисленная переменная n
делится нацело на целочисленную переменную i
. При этом выполняется приведение типов n
и i
к целочисленным значениям перед выполнением операции деления.
Вот список элементов кода с их номерами:
- Проверка условия:
(int)n % (int)i == 0
- Приведение типов
n
иi
к целочисленным значениям:(int)n
и(int)i
- Выполнение операции деления:
(int)n % (int)i
- Сравнение результата с нулем:
%(int)i == 0
- Выполнение операции сравнения:
%(int)i == 0
- Значение переменной
n
делится нацело на значение переменнойi
Если условие(int)n % (int)i == 0
истинно, то это означает, что целочисленное значение переменнойn
делится нацело на целочисленное значение переменнойi
. Если условие ложно, тоn
не делится нацело наi
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д