我使用的是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;
}
}
答案 0 :(得分:2)
当您定义一个在C中不带参数的函数时,参数应明确为void
。你做到了。错误是在您调用函数时:
getType(void);
在此,您必须省略void
:
getType();
但是你的函数返回float
,你可能想要存储结果。而你的函数实际上应该重新浮动。目前,它不会返回任何内容,这会导致不明确的行为。
再次编译代码并切换警告。您的代码中还有许多其他错误。例如,if (type = 1)
将将 type
设置为1,然后输入代码块。您希望检查值,您应该使用==
。