#include <stdio.h>
#define GA_OF_PA_NEED 267.0
int getSquareFootage(int squareFootage);
double calcestpaint(int squareFootage);
double printEstPaint(double gallonsOfPaint);
int main(void)
{
//Declaration
int squareFootage = 0;
double gallonsOfPaint = 0;
//Statements
getSquareFootage(squareFootage);
gallonsOfPaint = calcestpaint(squareFootage);
gallonsOfPaint = printEstPaint(gallonsOfPaint);
system("PAUSE");
return 0;
}
int getSquareFootage(int squareFootage)
{
printf("Enter the square footage of the surface: ");
scanf("%d", &squareFootage);
return squareFootage;
}
double calcestpaint( int squareFootage)
{
return (double) (squareFootage * GA_OF_PA_NEED);
}
double printEstPaint(double gallonsOfPaint)
{
printf("The estimate paint is: %lf\n",gallonsOfPaint);
return gallonsOfPaint;
}
为什么我的输出显示gallonsOfPaint为0.0,没有错误,一切似乎在逻辑上正确。看来calc函数中的calculate语句有问题。
答案 0 :(得分:2)
您需要指定getSquareFootage(squareFootage);
的结果:
squareFootage = getSquareFootage(squareFootage);
由于squareFootage
是按值传递的,而不是通过引用传递的,换句话说,在函数中更改它并不重要,它在函数外部没有任何影响。或者,您可以通过引用传递它:
void getSquareFootage(int * squareFootage)
{
printf("Enter the square footage of the surface: ");
scanf("%d", squareFootage);
}
将被这样调用:
getSquareFootage(&squareFootage);
答案 1 :(得分:1)
更正squareFootage=getSquareFootage();
无需传递参数。
答案 2 :(得分:1)
您没有更新变量square Footage。当你调用calcestpaint(square Footage)时,你传递值0作为参数。