2016-02-12 4 views
-1

Я пытался вычислить площадь как треугольника, так и круга, используя 3 отдельные пользовательские функции внутри основного. После компиляции функция GetInt работала должным образом, но вычисления двух других функций не печатались на экране точно для моей программы c Microsoft Visual Studio 2013. Что я делаю неправильно?Определенные пользователем функции

#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

Для CalcTriangleArea и CalcCircleArea нет необходимости иметь printf в главном, если вы печатаете результаты в своих функциях. Вы могли бы просто назвать их основным образом:

GetInt(); 
CalcTriangleArea(base, height); 

Кроме того, если этот подход вы принимаете (результаты печати в функции и возвращающие 0), ваши функции могут быть объявлены следующим образом:

void myFunction(int arg1, int arg2) 

Поскольку вы не возвращаете ничего, что используете, использование типа void позволяет вам иметь функцию без явного возврата.

+0

Спасибо за помощь. Однако, когда я вызываю функции в основном, мне нужно инициализировать переменные, что было бы неплохо, за исключением того, что он трижды выводил на экран вместо одного раза: – Nikita

Смежные вопросы