-1
#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 ステートメントに問題があるようです。

4

3 に答える 3

2

次の結果を割り当てる必要がありますgetSquareFootage(squareFootage);

squareFootage = getSquareFootage(squareFootage);

参照ではなく値で渡されるためsquareFootage、関数内でどれだけ変更しても、関数の外では何の影響もありません。または、参照で渡すこともできます。

void getSquareFootage(int * squareFootage)
{
     printf("Enter the square footage of the surface: ");
     scanf("%d", squareFootage);
}

これは次のように呼び出されます。

getSquareFootage(&squareFootage);
于 2012-10-21T19:47:32.920 に答える
1

このように正しいsquareFootage=getSquareFootage();

パラメータを渡す必要はありません。

于 2012-10-21T19:48:27.357 に答える
1

変数 squareFootage を更新していません。calcestpaint(squareFootage) を呼び出すと、値 0 が引数として渡されます。

于 2012-10-21T22:23:40.620 に答える