为什么结果为0?

问题描述 投票:0回答:2

我是一个初学者,我想做我的作业,我不知道为什么结果是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
c
2个回答
0
投票

当把参数传递给 printf你应该传递实际的值,而不是这些值的地址。

printf("x=%.2f, y=%.2f, z=%.2f\n",vector.x,vector.y,vector.z);

0
投票
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

好好享受吧

© www.soinside.com 2019 - 2024. All rights reserved.