2016-05-30 6 views
0

Fehler in Zeile 27 (Zeile beginnend mit "Gebühren") zurückgegeben, die "nicht deklarierte Referenz (für die BerechnungCharge, zu meiner besten Schätzung) und Compiler-Notizen sagt" ld zurückgegeben 1 Exit-Status " ich kann" t für das Leben von mir bekommen, was geändert werden muss.undefined Referenz Rückkehr Exit-Status

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

Uns Wenn Sie eine erzwungene Base-One-Indizierung auf Ihren Arrays durchführen, werden erfahrene Coder nur frustriert und Neuling Coders verwirrt. Bitte tu es nicht, benutze "normale" Null-Base wie alle anderen auch. –

+3

Wofür implementieren Sie (* define *) die Funktion 'calculateCharge'? Sie * implementieren * es irgendwo? –

+3

Sie haben eine * Deklaration * für 'calculateCharge()'. Aber wo ist die Definition von 'calculateCharge()'? –

Antwort

3

Unter der Annahme, das die Gesamtheit des Codes ist, haben Sie eine Vorwärtserklärung zur Verfügung gestellt, was die Unterschrift von calculateCharge ist, so kann der Compiler den Code generiert Rufen Sie es an (sobald es weiß, wo die tatsächliche Definition ist), aber Sie haben diese tatsächliche Definition nicht angegeben.