Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 返回错误值的函数_C_Function_Struct - Fatal编程技术网

C 返回错误值的函数

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

我正在学习用C编写代码,当你输入它给你的值为0.00+randomnumber.000000000000000000i时,我遇到了函数的问题 我使用相同的printf试图找出代码内部是否发生了什么,但问题似乎出在函数func_complejo本身。我做错了什么

#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);