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;
}
(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. –
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. –
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? –