Выдает ошибку для 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 к целочисленным значениям перед выполнением операции деления. Вот список элементов кода с их номерами:

  1. Проверка условия: (int)n % (int)i == 0
  2. Приведение типов n и i к целочисленным значениям: (int)n и (int)i
  3. Выполнение операции деления: (int)n % (int)i
  4. Сравнение результата с нулем: %(int)i == 0
  5. Выполнение операции сравнения: %(int)i == 0
  6. Значение переменной n делится нацело на значение переменной i Если условие (int)n % (int)i == 0 истинно, то это означает, что целочисленное значение переменной n делится нацело на целочисленное значение переменной i. Если условие ложно, то n не делится нацело на i.

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


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

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

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