Tengo un problema con el siguiente fragmento de código:
int main() { int n = 3; complex_t t[3]; for(int i = 0; i < n; i++) { double x, y; printf("Enter complex number: "); scanf("%f %f", &x, &y); t[i].re = x; t[i].im = y; } }Cuando trato de pasar x e y al programa, no cambia el valor y es 0.00000. ¿Me puedes ayudar?
Has declarado x e y como dobles, pero luego usaste el especificador de formato para flotantes ( %f ). Entonces, el resultado final es leerlos como si fueran flotantes regulares, luego atascar el resultado en un doble, dejándolo con valores inesperados cuando intenta usarlos.
Debe usar el especificador de formato específicamente para dobles ( %lf ) aquí.
scanf("%lf %lf", &x, &y);Consulte las especificaciones de cadena de formato para obtener más información sobre los diferentes especificadores de formato.