有人可以指出我做错了什么,我对c编程很新。 我一直在为“组件”提供相互冲突的类型。错误。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
float Vo,ang;
printf("Enter Velocity:");
scanf("%f",&Vo);
printf("Enter Angle:");
scanf("%f",&ang);
printf("The x component is %f and the y component is %f",components(Vo,ang));
}
float components(float Vo, float ang,float Vx, float Vy)
{
Vx=Vo*cos(ang);
Vy=Vo*sin(ang);
return Vx,Vy;
}
我将不胜感激。
答案 0 :(得分:0)
在您调用它的位置之前移动被调用函数的定义。 或者在main()之前提供原型,即插入
float components(float Vo, float ang,float Vx, float Vy);
之前
int main()
这样编译器就不必猜测调用该函数所涉及的类型。由于编译器猜测错误,它后来抱怨不匹配的类型。在修复该问题时更改编译器看到的顺序。
此外,
components(Vo,ang)
提供给printf的值中的只给出一个值,而带有格式字符串的printf()则需要两个值 您需要将两个单独的值写入两个变量,然后将这些变量赋予printf。例如,您可以为函数提供两个参数,指向合适变量的指针。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void components(float Vo, float ang, float* outpVx, float* outpVy)
{
*outpVx=Vo*cos(ang);
*outpVy=Vo*sin(ang);
}
int main(void)
{
float Vo,ang;
float outVx=0.0;
float outvy=0.0;
printf("Enter Velocity:");
scanf("%f",&Vo);
printf("Enter Angle:");
scanf("%f",&ang);
components(Vo,ang, &outVx, &outVy);
printf("The x component is %f and the y component is %f", outVx, outVy);
return 0;
}