我是一个初学者,我想做我的作业,我不知道为什么结果是0。
下面是代码。
#include <stdio.h>
#include <math.h>
#include <string.h>
typedef struct{
float x;
float y;
float z;
}Vector;
void print_vector(Vector vector);
Vector enterVector();
int main()
{
Vector v1;
printf("\nEnter vector v1:\n");
v1 = enterVector();
print_vector(v1);
return 0;
}
void print_vector(Vector vector)
{
printf("x=%.2f, y=%.2f, z=%.2f\n",&vector.x,&vector.y,&vector.z);
}
Vector enterVector(){
Vector vector;
printf("x-axis=");
scanf("%f",&vector.x);
printf("y-axis=");
scanf("%f",&vector.y);
printf("z-axis=");
scanf("%f",&vector.z);
return vector;
}
这里是一个例子输出。
Enter vector v1:
x-axis=1
y-axis=2
z-axis=3
x=0.00, y=0.00, z=0.00
当把参数传递给 printf
你应该传递实际的值,而不是这些值的地址。
printf("x=%.2f, y=%.2f, z=%.2f\n",vector.x,vector.y,vector.z);
void print_vector(Vector vector)
{
printf("x=%.2f, y=%.2f, z=%.2f\n", vector.x, vector.y, vector.z);
}
你不应该获取指针的地址,而应该直接获取值。
输出示例
Enter vector v1:
x-axis=1
y-axis=2
z-axis=3
x=1.00, y=2.00, z=3.00
好好享受吧