Вывод -nan(ind) [дубликат]

112
24 января 2020, 02:40
На этот вопрос уже даны ответы здесь:
scanf не присваивает значение в C [дубликат] (2 ответа)
Закрыт 10 месяцев назад.
    int k;
    double z, result;
    printf("Введите данные");
    scanf_s("%d", &k);
    getchar();
    scanf_s("%f", &z);
    getchar();
    result = pow(z, (2 * k - 1)) + log10(z + ((k + 3) / (0.1 * z - sqrt(z))));
    printf("%f", result);

Почему выводит вместо результата -nan(ind)?

Answer 1

Формат %f используется для чисел с плавающей точкой типа float, а %lf используется для чисел с плавающей точкой типа double в scanf_s, однако в printf вполне может использоваться %f

int k; 
double z, result; 
printf("Введите данные"); 
scanf_s("%d", &k); 
scanf_s("%lf", &z); 
result = pow(z, (2 * k - 1)) + log10(z + ((k + 3) / (0.1 * z - sqrt(z)))); 
printf("%f",result);

Answer 2

Формат %f в scanf (как, впрочем, и в printf) предназначен для работы со значениями типа float. Вы же пытаетесь использовать его со значениями типа double.

READ ALSO
Segmentation fault при dynamic_cast

Segmentation fault при dynamic_cast

Имеется freebsd 12, собранный из портов Qt5 и GCC7Любое написанное приложение падает при dynamic_cast

107
Проблема с “FMeshDrawSingleShaderBindings”

Проблема с “FMeshDrawSingleShaderBindings”

VS2017 жалуется на "FMeshDrawSingleShaderBindings не определён"В UE4 всё компилируется без проблем и объект создаётся на сцене

124
Самый короткий способ записи в файл/чтения из него

Самый короткий способ записи в файл/чтения из него

Попался мне такой короткий код, который пытается читать из файла число, и если не может, то пишет туда то, что было в переменной (предполагается,...

122
Синхронизация вывода потоков POSIX

Синхронизация вывода потоков POSIX

Нужно что бы два потока параллельно печатали на экран(Первый поток печатает числа 1,2,3

131