在C中使用指针很困难

Sha*_*mar -1 c pointers function

double volume(double l,double w,double h);  
double area(double l,double w,double h);  

int main() {  
    double l,w,h,v,a`;  
    volume (3.0,1.5,2.0);  
    area(3.0,1.5,2.0);  
    printf("The Volume is %lf cubic meters and the area is %lf square meters.\n", v,a);  
    return 0;
}  

double volume(double l,double w,double h) {  
    double v;  
    v = l*w*h;  
    return v;
}  

double area(double l,double w,double h) {  
    double a;  
    a = (2*l*w) + (2*w*h) + (2*l*h);  
    return a;
}  
Run Code Online (Sandbox Code Playgroud)

体积是2091994552961492532068352.000000立方米,面积是637485042878638687518720.000000平方米.

我目前正在获得上述输出(这显然是错误的,垃圾值),我想知道我哪里出错了.我猜它是一个指针问题.如果你能解释一下我的指针基础知识,我将非常感激.提前致谢.

Thi*_*ter 5

这根本与指针无关.您甚至不在代码中使用任何指针.

您只是不分配返回值,从而打印未初始化变量的值.

这是固定代码:

int main() {  
    double v, a; 
    v = volume(3.0, 1.5, 2.0);  
    a = area(3.0, 1.5, 2.0);  
    printf("The Volume is %lf cubic meters and the area is %lf square meters.\n", v, a);  
    return 0;
}  
Run Code Online (Sandbox Code Playgroud)

在其他两个函数中也不需要变量 - 只需直接返回结果:

double volume(double l,double w,double h) {  
    return l*w*h;  
}  

double area(double l,double w,double h) {  
    return (2*l*w) + (2*w*h) + (2*l*h);  
}  
Run Code Online (Sandbox Code Playgroud)