2017-04-17 14 views

答えて

0

まず、ページの上部にあなたの関数定義は一つの引数があります。

double get_positive_value(float num); 

あなたが実際に持っているところの引数リストと一致していませんコード:

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

第二に、あなたはもともとヨーヨーで入力をスキャンしたら、ウル「メイン」あなたは、関数を呼び出す機能「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より大きい場合、関数内のループを1回実行します。