2017-02-21 7 views
-1

Итак, вот часть моего кода, который я имею проблема с. Ошибка говорит, что% f для floats, а n - это двойное число, которое я видел во многих других вопросах, но ответ заключался в том, чтобы вместо этого добавить% 1f, и он по-прежнему возвращает ту же ошибку, когда я попробуйте скомпилировать.Формат «% f» ожидает аргумент типа «float *», но аргумент 2 имеет тип «double *» [-Wformat =] scanf («% 1f», &n);

#include <stdio.h> 
    #include <math.h> 

    int main() 
    { 

     //declaring variables 
     double n, new_guess, guess; 

     //getting data from the user 
     printf ("Enter a number: "); 
     scanf ("%1f", &n); 
+4

Должно быть '% lf', а не'% 1f'. 'l' надолго. –

+0

О, боже мой, спасибо тебе большое –

ответ

2

использование %lf вместо ℅1f для двойного типа данных, потому что scanf будет думать, что вы передаете указатель на поплавок, который является меньшим размером, чем двойной, и он будет возвращать incorrec t.,