我试图使用main中的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);
}
答案 0 :(得分:1)
CalcTriangleArea
没有调用函数,它使用的是函数地址。试试CalcTriangleArea()
编辑:注意到CalcTriangleArea
需要参数 - 您也需要传递参数。
编辑:您认为如何返回3个值?
答案 1 :(得分:0)
对于CalcTriangleArea
和CalcCircleArea
,如果您要在功能中打印结果,则无需使用printf。你可以简单地在main中调用它们:
GetInt();
CalcTriangleArea(base, height);
另外,如果这是你正在采用的方法(在函数中打印结果并返回0),你的函数可以这样声明:
void myFunction(int arg1, int arg2)
由于您没有返回正在使用的任何内容,因此使用void类型可以让您拥有一个没有明确返回的函数。