答案 0 :(得分:0)
首先,页面顶部的函数定义有一个参数:
double get_positive_value(float num);
哪个与您实际拥有代码的地址的参数列表不匹配:
double get_positive_value() // this is missing "float num" argument
{
//code
}
其次,一旦你最初在“main”函数中扫描输入,你就会调用函数“get_positive_value()”:
scanf("%f",&top_speed);
top_speed = get_positive_value(top_speed);
该函数将始终显示“错误”消息,然后在do-while循环中执行另一个“scanf”。
double get_positive_value()
{
do{
printf("error\n");
scanf("%f", &num);
...
}
while(num<=0);
return num;
}
每个变量“top_speed / year / horsepower”至少需要2个输入。
我不确定你没有得到“解决”但是如果我的答案似乎遵循了什么错误只是将你的功能改为
double get_positive_value(double value)
{
while(value <= 0){
printf("error\n");
scanf("%f", &value);
...
}
return value;
}
这与原始函数声明(包括参数)匹配,如果原始输入大于0,它只会在函数中循环一次。
我希望有帮助