2016-05-30 8 views
0

エラーは、27行目( "charge"で始まる行)で返されます。 "宣言されていない参照(calculateChargeのために推測してください)これはあなたのコードの全体であると仮定すると、私の人生のためのトン変更する必要があるものを手に入れる。未定義の参照が終了ステータスを返す

float calculateCharge(float); 

int main() 
{ 
    printf("Hello world!\n"); 

    int car; 
    int num_cars; 
    float total_charges = 0; 
    float total_hours = 0; 

    printf("How many cars?\n\n");  //prompt 
    scanf("%d", &num_cars);   //prompt 

    float hours [num_cars + 1];  //declaring parallel arrays 
    float charges [num_cars + 1]; 

    for (car=1; car<=num_cars; car++) 
    { 
     printf("How many hours for car #%d?", car);  //prompt 
     scanf("%f", &hours[car]);      //input hours 
     charges [car] = calculateCharge(hours [car]); 
     total_charges = total_charges + charges [car]; 
     total_hours = total_hours + hours [car]; 
    } 
    printf("%s\t%s\t%s\t", "Car", "Hours", "Charge"); 

    for (car = 1; car <=num_cars; car++) 
    { 
     printf("\n%d\t%.2f\t%.2f\n", car, hours[car], charges[car]); 
    } 

printf("\n%s\t%.2f\t%.2f\n", "Total", total_hours, total_charges); 

return 0; 
} 
+5

あなたの配列に強制的にベース1のインデックスを作成すると、熟練したコーダーが欲求不満となり、初心者コーダーが混乱するだけです。しないでください、他の人のように "普通の"ゼロベースを使用してください。 –

+3

あなたの問題については、 'calculateCharge'関数をどこで実装しますか?あなたはどこかに実装しますか? –

+3

'calculateCharge()'の*宣言があります。しかし、 'calculateCharge()'の定義はどこですか? –

答えて

3

、あなたはcalculateChargeの署名があるものの前方宣言を提供しているので、コンパイラがコードにを生成することができますそれを呼び出すと(実際の定義がどこにあるか分かると)、その実際の定義は提供されていません。