Lectura de float utilizando scanf en c

Tengo una estructura que contiene una variable flotante,

struct MyStruct{
    float p;
}newMyStruct;

Y estoy leyendo un valor en él usandoscanf

int main(){
    scanf("%f",&(newMyStruct.p));
}

El problema es cuando lo imprimo usandoprintf("%f",newMyStruct.p) imprime '0.000000'. También recibo una advertencia que dice que la regla es doble mientras que el formato espera que sea flotante (advertencia para elscanf("%f",&(newMyStruct.p)); declaración). cuando me cambioscanf() sintaxis parascanf("%0f",&(newMyStruct.p));,printf("%0f",newMyStruct.p); imprime el valor flotante correctamente pero el compilador emite otra advertencia (algo relacionado con la precisión es 0). tambiénprintf("%2f",newMyStruct.p) imprime el número flotante en algún otro formato.

Entonces, mi pregunta es cómo me deshago de todas estas advertencias y leo una variable flotante adecuada que también se puede imprimir correctamente.

No tengo acceso a la computadora portátil en la que generalmente codifico y, por lo tanto, no puedo proporcionar las advertencias adecuadas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta