2017-04-17 227 views

回答

0

首先,在頁面頂端的功能定義有一個說法:

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,則通過函數中的循環一次。

我希望可以幫助