Hilfe bei C-Programmierung Aufgabe
-
Also ich habe da ein Buch und nutze ich auch, aber bei Anwendungsbeispiele hilft es mir wenig. Aber ich habe jetzt recherchiert und kam darauf:
int main(void) { // Aufgabe 1b: Deklaration der Variablen float akt_temperatur; int akt_heizung; enum wetter akt_wetter; enum bewohner anwesenheit; struct zeit akt_zeit; enum rollaeden akt_rollladen;
Für der Letzen Teil der Aufgabe habe ich das:
printf("Wieviel Grad sind draussen?"); scanf("%f",&akt_temperatur); printf("Wetter [0: Sonne, 1: Regen, 2: Wolken]?"); scanf("%d",&akt_wetter); printf("Ist jemand zuhause [j/n]?"); scanf("%c",&akt_wetter);
Aber bei der Teil mit "Unterprogramm init_zeit mit dem Rückgabewert vom Typ zeit" weiß ich nicht was ich da mache.
Es tut mir echt Leid, dass ich Ihnen störe, und vielen vielen Dank für Ihre Hilfe!
-
@hilfehwi sagte in Hilfe bei C-Programmierung Aufgabe:
Aber bei der Teil mit "Unterprogramm init_zeit mit dem Rückgabewert vom Typ zeit" weiß ich nicht was ich da mache.
Würdest du es verstehen, wenn da stünde "Schreiben Sie eine Funktion
foo
mit Rückgabetypint
"? Falls ja, dann ist es nur eine Frage, die Bezeichner und Typen zu tauschen. Falls nein, solltest du nochmal das Kapitel über Funktionen/Unterprogramme lesen.Was ist denn das für ein Buch? "Unterprogramm" ist ein ziemlich archaischer Begriff.
-
Ich nutze das Buch "C als erste Programmiersprache" Das ist was zu uns empfohlen wurde. Und nein Ihre Frage verstehe ich nicht. Mal schauen ich lese über Unterfunktionen, hoffentlich kirege ich das.
Aber selbst die Aufgabe: "Schreiben Sie außerdem ein Unterprogramm init_zeit mit dem Rückgabewert vom Typ zeit. In der Funktion sollen die Elemente der Struktur zeit per Bildschirmeingabe eingelesen und eine somit initialisierte Instanz von zeit zurückgegeben werden. Initialisieren Sie mithilfe dieser Funktion die Variable akt_zeit."
Ich kann da nur das anfangen:void init_zeit(struct zeit){ printf(""); scanf("%f",&);
Aber ich lese jetzt mehr darüber...
-
int foo;
Das ist die Deklaration einer Variable Namens "foo". Sie ist vom Typ
int
.
enum wetter { sonnig, regnerisch, bewoelkt };
Jetzt hast Du einen Typ Namens "enum wetter" ...
enum wetter bar;
Das ist die Deklaration einer Variable Namens "bar". Sie ist vom Typ
enum wetter
.
-
Jetzt für diese Teilaufgabe:
"Schreiben Sie außerdem ein Unterprogramm init_zeit mit dem Rückgabewert vom Typ zeit. In der Funktion sollen die Elemente der Struktur zeit per Bildschirmeingabe eingelesen und eine somit initialisierte Instanz von zeit zurückgegeben werden. Initialisieren Sie mithilfe dieser Funktion die Variable akt_zeit."habe ich das geschrieben. Es gibt da aber eine Fehler oder mehrere. Ich in YouTube und Google geguckt aber trotzdem fehlt etwas oder ist etwas falsch.
void init_zeit(struct zeit){ int monat; int stunde; int minute; printf("Gebe den Monat ein:"); scanf("%d",&monat); printf("Gebe die Zeit im Format hh:mm ein:"); scanf("%d : %d",&stunde, &minute); return(zeit) }
-
Vereinfachen wir das. Wäre dies für dich eine sinnvolle Funktion? Falls nein, was ist daran falsch?
void foo(int i) { int j = 1; return i; }
-
ist i hier zweimal anders deklaniert? und j ist undeklaniert?
-
Nein. Aber was ist denn hierbei der Rückgabetyp?
-
@hilfehwi sagte in Hilfe bei C-Programmierung Aufgabe:
ist i hier zweimal anders deklaniert? und j ist undeklaniert?
Häh, was? Vielleicht waren i und j zu ähnlich.
void foo(int irgendein_integer) { int ein_vollkommen_anderer_integer = 1; return irgendein_integer; }
Analyse immer noch die gleiche?
Und wichtiger: Findest du dein Programm darin wieder?
-
@SeppJ Der Return wert wurde nicht verändert?
-
void foo(int i)
Ok, dann winken wir mal mit dem gesamten Zaun: Was aus dem Codeschnipsel beschreibt den Return Type?