C 返回错误值的函数
我正在学习用C编写代码,当你输入它给你的值为0.00+randomnumber.000000000000000000i时,我遇到了函数的问题 我使用相同的printf试图找出代码内部是否发生了什么,但问题似乎出在函数func_complejo本身。我做错了什么C 返回错误值的函数,c,function,struct,C,Function,Struct,我正在学习用C编写代码,当你输入它给你的值为0.00+randomnumber.000000000000000000i时,我遇到了函数的问题 我使用相同的printf试图找出代码内部是否发生了什么,但问题似乎出在函数func_complejo本身。我做错了什么 #include <stdio.h> //entrada y salida typedef struct { float real, imaginario; } complejo; complejo func_co
#include <stdio.h> //entrada y salida
typedef struct
{
float real, imaginario;
} complejo;
complejo func_complejo(void);
void func_mostrarComplejo(complejo complejoOut);
int main()
{
complejo complejoAux;
complejoAux = func_complejo();
printf("\nEl numero ingresado es %.2f + %.2fi", &complejoAux.real, &complejoAux.imaginario);
func_mostrarComplejo(complejoAux);
return 0;
}
complejo func_complejo(void)
{
complejo complejoIn;
printf("\nIngrese la parte real de un complejo: ");
scanf("%f", &complejoIn.real);
printf("\nAhora ingrese la parte imaginaria de un complejo: ");
scanf("%f", &complejoIn.imaginario);
printf("\nEl numero ingresado es %.2f + %.2fi", &complejoIn.real, &complejoIn.imaginario);
return complejoIn;
}
void func_mostrarComplejo(complejo complejoOut)
{
printf("\nEl numero ingresado es %.2f + %.2fi", &complejoOut.real, &complejoOut.imaginario);
}
#包括//entrada y salida
类型定义结构
{
漂浮真实,想象;
}复合物;
complejo func_complejo(无效);
void func_mostrarComplejo(complejo complejout);
int main()
{
complejo complejoAux;
complejoAux=func_complejo();
printf(“\nEl numero increado es%.2f+%.2fi”、&complejoux.real和&complejoux.imaginario);
func_mostrarComplejo(complejoux);
返回0;
}
complejo func_complejo(无效)
{
complejo complejoIn;
printf(“\nIngrese la parte real de un complejo:”);
scanf(“%f”、&complejoIn.real);
printf(“\nAhora ingrese la parte imaginaria de un complejo:”);
scanf(“%f”和complejoIn.imaginario);
printf(“\nEl numero ingreado es%.2f+%.2fi”,&complejoIn.real,&complejoIn.imaginario);
返回并加入;
}
void func_mostrarComplejo(complejo complejout)
{
printf(“\nEl numero ingreado es%.2f+%.2fi”,&complejoOut.real,&complejoOut.imaginario);
}
在每个printf
调用中,您传递的是一个float*
以匹配%f
格式说明符,该说明符需要一个float
或double
。不匹配的格式说明符触发,这就是为什么您会看到这样做的结果
您不需要为printf
传递地址。scanf
函数需要地址,以便可以写入相关变量
这些错误可以通过删除每个printf
调用中的操作员地址来修复:
printf("\nEl numero ingresado es %.2f + %.2fi", complejoAux.real, complejoAux.imaginario);