一些功能的麻烦

时间:2017-03-14 22:28:14

标签: c

所以我试图在我的getOption函数中的if语句中调用我的OptionA函数,但是在第59行我得到一个错误"错误预期标识符或'('之前' {'"所以我想知道如何让我的代码在OptionA函数中打印出我的代码。谢谢!

#include <stdio.h>
#include <stdlib.h>

//function declaration
char getOption (void);
double OptionA;

int main(void)
{
  //local declaration
  getOption();

  return 0;
}//main

char getOption (void)
{
  //local declaration
  char option;

  //statements
  printf("\nMain Menu\n");
  printf("  A. Find the square root of a positive number.\n");
  printf("  B. Find the inverse of a positive number.\n");
  printf("  Q. Quit.\n\n");
  printf("Enter choice:");
  scanf(" %c", &option);
  if ( option == 'a' || option == 'A')
  {
     OptionA;
  }
  else if ( option == 'b' || option == 'B')
  {
    printf("\nnice");
  }
  else if ( option == 'q' || option == 'Q')
  {
    exit(0);
  }
  else
  {
    printf("\nError. Invalid Selection.\n");
    getOption();
  }
  return option;
}

double OptionA;
{
  printf("\nHey, it works.");
}

2 个答案:

答案 0 :(得分:1)

OptionA不是一个函数,它是一个双精度函数。

double OptionA;

要在c中声明一个函数,你应该使用() 替换:

// PROTOTYPE
double OptionA;
// this is a double, you'd say :
double OptionA();
// this is a function which returns a double;

然后在getOption()函数中:

if ( option == 'a' || option == 'A')
{
    OptionA();
}

并在函数中:

double OptionA()
{
    printf("\nHey, it works.");
}

希望有所帮助

答案 1 :(得分:0)

  

...调用我的OptionA函数......

OptionA不是一个函数,就像你声明它,调用它并定义它一样。任何函数的正确语法是:

return_value FunctionName (argument_data_type argument1, etc...)

如果你不想将任何参数传递给你的函数,那么你可以在函数名后面有一对空括号,或者你可以在函数后面的括号内有关键字void名称。 但是,括号是必需的,否则你的函数名称会在声明时由编译器混淆变量(double variable是double类型的变量,double function也是如此)。

解析错误时:

  

错误预期标识符或'('在'{'

之前

它告诉您在函数体和函数体的开括号之后需要括号对。

要修复此错误,您应该在代码中调用,声明或定义函数的所有点的函数名后面添加一对括号。从以下位置更改程序顶部的函数声明:

double OptionA;

要:

double OptionA(); // the pair of parenthesis is added here

或者:

double OptionA (void); // (void) is the same as () for this purpose. 

同时将您的函数调用更改为:

if ( option == 'a' || option == 'A')
{
    OptionA (); // pair of parenthesis added here too
}

在将其定义为:

时更改函数标题
double OptionA() // pair of parenthesis added he right before the function name
{
    printf("\nHey, it works.");
}