我的最终功能不会返回

时间:2018-06-29 03:18:30

标签: c

在我的代码中,最后我有一个不会返回任何结果的函数。我认为这可能与我的指针有关。我不确定该怎么做,因为我是编码的新手,所以可以提供任何帮助。

#include <stdio.h>
#include <stdlib.h>
int PrintInstructions(void);
void GetData(float*, float*, float*);
double AccelerationDisplacement(float vi, float t, float a);
void PrintOutput (double result, float vi, float t, float a);
int main(void) 
{
  int x=PrintInstructions();
  float vi,t,a;
  double result;
  GetData(&vi,&t,&a);
  AccelerationDisplacement;
  PrintOutput;
  return 0;
}
int PrintInstructions(void)
{
  printf ("This program determines distance traveled based on the data given, if you wish to quit, enter 'q', if you wish to continue enter any other character:");
  char leave;
  leave= getchar();
  if (leave == 'q' || leave == 'Q')
    exit(0);
  else 
    return 1;
}
void GetData (float* vi , float* t, float* a)
{
  printf ("Enter the vehicle's initial velocity in m/s:");
  scanf ("%f",&vi);
  printf ("Enter the time the vehicle travels in seconds:");
  scanf ("%f",&t);
  printf ("Enter the rate of acceleration in m/s:");
  scanf ("%f",&a); 

}
 double AccelerationDisplacement (float vi, float t, float a)
 {
   float d=(vi * t)+ (.5 * a) * (t * t);
   double result;
   d=result;
   printf ("Your answer is:", result);
  }

1 个答案:

答案 0 :(得分:2)

由于我没有enuf rep在问题下直接评论,因此我将其放在此处。正如Retired Ninja所说,

  1. 您不需要在scanf中使用多余的&,因为您已经在将指针作为参数传递了(建议您花一些时间来理解scanf中的&表示什么)

  2. AccelerationDisplacement和PrintOutput是函数。因此,当您调用它们时,您需要在它们旁边有()并按照与顶部声明相同的顺序传递相关参数-

    AccelerationDisplacement(vi,t,a);

    PrintOutput(vi,t,a);

作为不请自来的建议,请学习如何使用gdb之类的工具来调试每一行。这将有助于理解代码的作用。