我在乞讨,我在努力做作业。我不知道为什么结果是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发布于 2020-05-05 02:37:27
在向printf传递参数时,您应该传递实际值,而不是这些值的地址:
printf("x=%.2f, y=%.2f, z=%.2f\n",vector.x,vector.y,vector.z);发布于 2020-05-05 02:38:20
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享受吧!
https://stackoverflow.com/questions/61599208
复制相似问题