hasan85 Geschrieben 17. Januar 2008 Geschrieben 17. Januar 2008 Hallo.. Ich habe eine Aufgabe,die in C-Sprache gelöst werden muss(es geht um Call by Value) .Ich kenne mich aber mit c++ gut aus und habe keine ahnung von C !! Ich bitte um ne sofortige hilfe und Danke im Voraus? Die Aufgabenstellung: Ich soll ein Programm schreiben, das eine Zahl einliest und ihr Signum und ob es sich um eine Ganzzahl oder Dezimalzahl handelt ausgibt. Zahlen, deren Nachkommastellen nur Nullen sind, gelten dabei als Ganzzahlen. Das Programm soll so oft wiederholt werden bis der Nutzer auf die Frage "Weitere Eingaben? <j>/n" mit n oder N reagiert. Fehleingaben brauchen dabei nicht beachtet zu werden. Vorgehensweise: Ich soll die Zahleingabe als Funktion mit folgender Deklaration: void eingabeDouble(double *); und die Berechnung des Signums und Test auf Ganzahl oder Dezimalzahl mit dieser Deklaration: int signumUndZahltyp(double, int *); Dabei steht der Rückgabetyp für das Signum, der double-Parameter für den eingegebenen Wert und der int *-Parameter (call by reference) für Ganzahl (= 0) oder Dezimalzahl (= 1) . L.Grüße Hasan Zitieren
Guybrush Threepwood Geschrieben 17. Januar 2008 Geschrieben 17. Januar 2008 Na wenn du dich mit C++ auskennst dürfte das ja kein Problem sein in C umzusetzten. Nimm halt statt cout/cin printf/scanf Zitieren
Klotzkopp Geschrieben 17. Januar 2008 Geschrieben 17. Januar 2008 Ich kenne mich aber mit c++ gut aus und habe keine ahnung von C !! Die Unterschiede dürften hier minimal sein. Mein Vorschlag: Du schreibst das Programm in C++, und wir schreiben es dir hier nach C um. Wie klingt das? Zitieren
hasan85 Geschrieben 17. Januar 2008 Autor Geschrieben 17. Januar 2008 Die Unterschiede dürften hier minimal sein. Mein Vorschlag: Du schreibst das Programm in C++, und wir schreiben es dir hier nach C um. Wie klingt das? Das klingt super! Zitieren
TDM Geschrieben 18. Januar 2008 Geschrieben 18. Januar 2008 Mal sehen, ob ich das richtig verstanden habe: void eingabeDouble(double *d) { printf("Zahl:\t"); scanf("%f", d); } int signumUndZahltyp(double d, int *i) { if ((d%(int)d) != 1.0f) { (*(i)) = 1; } else (*(i)) = 0; return ((d < 0) ? (-1) : ((d == 0) ? 0 : 1)); } So z.B.? (Und ja, ich bin ein Klammermensch. :beagolisc) Zitieren
d.uNd.eE Geschrieben 18. Januar 2008 Geschrieben 18. Januar 2008 Ich hab auch kein Plan von C. Aber du macht da kein Call-by-Value sondern Call-by-Reference, wenn mich jetzt nicht alles täuscht. Ich nehm an main() und die Funktionsaufrufe hast du absichtlich weggelassen? Wenn ja, warum? Zitieren
TDM Geschrieben 18. Januar 2008 Geschrieben 18. Januar 2008 Aber du macht da kein Call-by-Value sondern Call-by-Reference, wenn mich jetzt nicht alles täuscht. Die Funktionsdeklaration war ja so gegeben. Keine Ahnung was man da großartig mit CBV machen soll. Ich nehm an main() und die Funktionsaufrufe hast du absichtlich weggelassen? Wenn ja, warum? Er soll ja auch was machen. Zitieren
d.uNd.eE Geschrieben 18. Januar 2008 Geschrieben 18. Januar 2008 oh^^ lesen hilft...hab dich grad irgendwie für den threadersteller gehalten TDM...sry^^ und bei CBR/CBV...hilft mir lesen auch weiter :mod: naja...is noch früh am Morgen für mich und ich hatte noch keinen kaffee und keine kippe :old In diesem Sinne...ich nehme alles zurück und behaupte das Gegenteil :floet: Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.