2017-04-26 4 views
0

ich bin so verwirrt, ich weiß, dieses Programm ist überhaupt nicht richtig, aber don' t wissen, heiß es zu beheben ..Format '% f' erwartet Argument des Typs 'float *', aber Argument 2 hat den Typ 'float (*) [((sizetype)

#include <stdio.h> 

    int main() 
{ 
    int distance; 
    float avg_speed; 

    printf ("Enter the race distance (m): "); 
    scanf ("%d", &distance); 

    int Num_lanes; 

    printf ("Enter number of lanes in use:"); 
    scanf ("%d", &Num_lanes); 

    float Finish_times[Num_lanes]; 

    int i; 
    for (i = 0; i < Num_lanes; i++) 
    { 
    printf ("Enter finish time for lane %d (sec): ", i + 1); 
    scanf ("%f", &(Finish_times)); 
    } 

    int Worst_time = 0; 
    for (i = 0; i < Num_lanes; i++) 
    { 
    if (Finish_times[i] < Worst_time) 
    { 
    Worst_time = Finish_times[i]; 
    } 
    } 

    avg_speed = (distance/1000)/(Worst_time/3600); 

    printf ("Lane wins in %d seconds, with an average speed of %f km/h", 
    Worst_time, avg_speed); 

    return 0 
    } 

wenn jemand könnte mir ein wenig auf einige Fehler bitte führen, so dass ich verbessern kann, i

dankbar sein
+5

'& (Finish_times)' -> '& Finish_times [i]' – BLUEPIXY

+2

'Finish_times [i] BLUEPIXY

+0

'1000' ->' 1000', '3600' ->' 3600' – BLUEPIXY

Antwort

0

Zunächst einmal sollten Sie Array mit dynamischen Speicher erstellen Zuteilung, dh mit malloc() oder calloc() Funktionen Oder sollten Sie Array-Elemente zur Kompilierzeit definieren, dh beim Schreiben des Codes, entscheiden Array-Größe. Sekunde Ding, während sie in einem Array Lesen Sie Index-Operator wie folgt aus ([]) mit Array-Namen verwenden sollten:

scanf ("%f", &Finish_times[i]) 
1

Dieses:

scanf ("%f", &(Finish_times)); 

falsch ist, es geht um die Adresse des gesamten Arrays jeder Zeit. Statt dem, was bedeutete, man war „scannen diese in die i: te Elemente“, so dass Sie die Adresse an den i zur Verfügung stellen müssen: te Elements:

scanf ("%f", &Finish_times[i]); 

Beachten Sie auch, dass, wenn Sie in einer Schleife gehen über n Zahlen, um die min und den Durchschnitt zu berechnen, müssen Sie die Zahlen im Allgemeinen nicht speichern. Halten Sie einfach eine laufende min und eine laufende Summe, und teilen Sie die letzte durch n, sobald Sie fertig sind. Viel einfacher.

Verwandte Themen