错误:'void'之前的预期表达式

时间:2017-05-04 18:19:58

标签: c compiler-errors

我使用的是Cloud 9环境,而且这段代码让我烦恼,我们得到了一个分配它显示以下编译错误,我坚持使用这些

  

lab.c:在函数'main'中:lab.c:14:12:错误:预期表达式   'void'之前       的getType(无效);

     

^ lab.c:14:12:错误:函数'getType'的参数太多   lab.c:4:7:注意:这里声明了float getType(void);

     

^ lab.c:在函数'getType'中:lab.c:20:5:警告:格式'%f'   期望类型为'double'的参数,但参数2的类型为'float'   (*)(int,int)'[ - Wformat =]        printf("总机票价格:%。2f",ticketPrice);

    //calculation cost aircost by given type

#include <stdio.h>
float getType(void);
float ticketPrice(int type,int noOfSeats);
int main(void)
{
   int type,noOfSeats;

   printf("Enter the type(1 or2): ");
   scanf("%d", &type);
   printf("Enter the no of seats: ");
   scanf("%d", &noOfSeats);
   getType(void);
   ticketPrice(type,noOfSeats);
   return 0;
}
float getType(void)
{
    printf("Total airfare is: %.2f",ticketPrice);

}
float ticketPrice(int type,int noOfSeats)
{
   float Tprice;

   if (type=1){
      printf("Economy Class\n");
      type=90000;
      printf("90,000\n");
      Tprice=90000*noOfSeats;
      printf("Total airfare is:%.2f ",Tprice);
      return 0;
   }
   else if(type=2){
      printf("Business class\n");
      type=120000;
      printf("120,000\n");
      Tprice=120000*noOfSeats;
      printf("Total airfare is :%.2f ",Tprice);
   }
   else if(type!=1||2){
       printf("invalid type");
      return 1;
   }
}

1 个答案:

答案 0 :(得分:2)

当您定义一个在C中不带参数的函数时,参数应明确为void。你做到了。错误是在您调用函数时:

getType(void);

在此,您必须省略void

getType();

但是你的函数返回float,你可能想要存储结果。而你的函数实际上应该重新浮动。目前,它不会返回任何内容,这会导致不明确的行为。

再次编译代码并切换警告。您的代码中还有许多其他错误。例如,if (type = 1) type设置为1,然后输入代码块。您希望检查值,您应该使用==