2017-06-19 3 views
0

Dies ist Programm, das in Sekunden secods-Minuten-hours.When dreht sie versucht, es zu kompilieren, bekomme ich eine Fehlermeldung „Ungültige initializer“ auf „struct Time_t malko = mal (a);“ bitte jemanden helfen P.S. Ich muss es nur mit Strukturen tun, nicht mit Zeigern oder irgendetwas anderem !!Fehler „Invalid initializer“


#include <stdio.h> 

    struct time_t { 
    float sec; 
    int min,hours; 
}; 

struct time_t fastest_time (float times[3]){ 
    int i; 
    int prom; 
    struct time_t malko; 
    for(i=0;i<3;i++) { 
    if(prom>times[i]) {prom=times[i];} 
} 
    malko.sec=prom%60; 
    prom=prom/60; 
    malko.min=prom%60; 
    prom=prom/60; 
    malko.hours=prom%60; 

    return malko; 
} 


int main() { 
    float a[3]={3423,1234,34232}; 
    struct time_t malko=times(a); 
    printf("\n %d %d %f", malko.hours, malko.min, malko.sec); 

    return 0; 
} 
+2

(1) Was ist "mal" hier? Struct time_t malko = mal (a); '? Ich sehe keine Funktion mit dem Namen "times" (2) 'prom' wird in der ersten Iteration der 'for'-Schleife initialisiert, die UB aufruft. –

+2

Sie wissen, dass' time_t' ein * standard * -Typ ist? Obwohl Struktur-Tags (Namen) in einem eigenen Namespace existieren, führt die Verwendung des gleichen Namens für Ihre Struktur als Standardtyp zu Verwirrung. –

+0

Wenn Sie ein Argument Funktionen Namen wie die tatsächlichen Funktionsnamen zu verwenden versuchen, dann sind Sie auf jeden Fall und verzweifelt [sollten ein guten Anfänger Buch finden] (http://stackoverflow.com/questions/562303/the-definitive-c-book- guide-and-list) und fang von vorne an. Wenn Sie 'mal' verwenden, weil es der Name des Arguments in der Funktion 'schnellste_Zeit' ist, wie würden Sie dann versuchen, eine Funktion mit zwei oder mehr Argumenten aufzurufen? –

Antwort

3

struct time_t malko=fastest_time(a); statt struct time_t malko=times(a);?

Zeiten ist nicht für Haupt definiert. (hier die Ausgabe: http://codepad.org/yvGhoHw4)

+0

Vielen Dank, es hat funktioniert !! –

+0

'time_t' ist bereits in der c-Bibliothek definiert. Die Wiederverwendung des Namens führt zu Problemen auf der Straße. –

Verwandte Themen