2016-02-12 135 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