验证输入

验证输入

首先,在页面顶端的功能定义有一个说法:

double get_positive_value(float num); 

不匹配的,你实际上有参数列表您代码:

double get_positive_value() // this is missing "float num" argument 
{ 
    //code 
} 

其次,一旦您最初用于扫描输入哟UR“主要”功能,那么你调用函数“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,则通过函数中的循环一次。

我希望可以帮助