2016-02-12 137 views
-1

我试图计算两个三角形,并使用主要内3个独立用户定义的函数的圆的面积。编译完成后,GetInt函数可以正常工作,但其他两个函数的计算结果并未在屏幕上为我的Microsoft Visual Studio 2013上的c程序准确打印。我做错了什么?用户定义函数

#define _CRT_SECURE_NO_WARNINGS 
#define PI 3.14159 
#include <stdio.h> 
#include <math.h> 

int GetInt(void); 
double CalcTriangleArea(int base, int height); 
double CalcCircleArea(int radius); 

int main(void) 
{ 
    printf("%d", GetInt()); 
    printf("%f", CalcTriangleArea); 
    printf("%f", CalcCircleArea); 

    return(0); 
} 

int GetInt(void) 
{ 
    int radius, base, height; 

    printf("What is the radius of the circle? \n\n"); 
    scanf("%d", &radius); 

    printf("What is the base of the triangle? \n\n"); 
    scanf("%d", &base); 

    printf("\nthe height of the triangle? \n\n"); 
    scanf("%d", &height); 

    return (radius, base, height); 
} 

double CalcTriangleArea(int base, int height) 
{ 
    double triangleArea; 
    printf("Triangle area is %.2f \n\n", triangleArea = .5*base*height); 

    return(0); 
} 

double CalcCircleArea(int radius) 

{ 
    double circleArea; 
    printf("Circle area is %.4f \n\n", circleArea = PI * pow(radius, 2)); 

    return(0); 
} 

回答

1

CalcTriangleArea是不是调用该函数,它使用函数的地址。尝试CalcTriangleArea()

编辑:只要注意CalcTriangleArea需要参数 - 你也需要通过这些参数。

编辑:那么你认为你可以返回3个值?

0

CalcTriangleAreaCalcCircleArea没有必要有printf的的主,如果你要打印在您的函数的结果。你可以简单地叫他们主要像这样:

GetInt(); 
CalcTriangleArea(base, height); 

此外,如果这是你正在服用(打印效果,在功能和返回0)的方法,你的函数可以声明如下所示:

void myFunction(int arg1, int arg2) 

既然你没有返回你正在使用的任何东西,使用void类型可以让你有一个没有显式返回的函数。

+0

感谢您的帮助。但是,当我在main中调用函数时,我必须初始化变量,除非在屏幕上打印三次而不是一次: – Nikita