Problem mit Funktion :(
-
Hallo immmer wenn ich versuche diesen Source Code zu Compilieren bekomme ich eine Fehlermeldung

bevor wer mekert von wegen Grundlagen oder so ich hab das Kapitel aus dem Tutorial noch nicht ganz gelesen und ich konnte es nicht lass das neue Wissen etwas mehr zu testen

Hier ist der Source Code:
#include <iostream> using namespace std; #pragma hdrstop #pragma argsused void UserEingaben (); void PcAuswahl(); void vergleich(); int main() { UserEingaben(); PcAuswahl(); vergleich(); system("PAUSE"); } void UserEingaben () { int zahl; cout<<"Geben sie eine Zahl ein: \n"; cin>>zahl; } void PCAuswahl () { int PcAuswahl; srand( time (NULL) ); PcAuswahl = rand()%3+1; } void vergleich() { int zahl,PcAuswahl; cout<<"Du hast eine"<< zahl <<"eingeben\n"; cout<<"Der Computer hat die"<< PcAuswahl <<"geweahlt\n"; }
-
Bassmaster schrieb:
Hallo immmer wenn ich versuche diesen Source Code zu Compilieren bekomme ich eine Fehlermeldung ...
... und welche ?
Macht das eigentlich Spaß, so extra Hürden einzubauen ?
-
Bassmaster schrieb:
Hallo immmer wenn ich versuche diesen Source Code zu Compilieren bekomme ich eine Fehlermeldung

Die Zeiten, wo der Computer einfach nur "Fehler" gesagt hat, sind lange vorbei. Grundsätzlöch issind in solchen Meldungen viele Informationen enthalten, die helfen, die Ursache zu finden - daher solltest du sie hier immer zitieren - im Allgemeinen macht sich niemand die Mühe, den Code in Gänze anzuschauen.
Soweit ich das überflogen habe, fehlen ein paar #includes#include <cstdlib> #include <ctime> #include <cmath>Das Programm wird trotzdem nicht funktionieren - aber der Compiler dürfte zufrieden sein.
-
Oh sry jo die Fehlermeldung ^^
[C++ Warnung] Unit1.cpp(32): W8004 'PcAuswahl' wurde ein Wert zugewiesen, der nie verwendet wird
[Linker Fehler] Unresolved external 'PcAuswahl()' referenced from E:\BORLAND BUILDER 6\BIN\UNIT1.OBJ
-
Groß-/Kleinschreibung beachten
-
also...
du legst in PCAuswahl und in UserEingaben und zusätzlich in vergleichen lokale Variablen an... Diese sind auf jeden Fall nicht diejenigen, die du ausgeben willst, da es in vergleichen() andere sind, als in PCAuswahl und in UserEingaben.
Außerdem schreibst du in der Funktionsdeklaration PcAuswahl und in der Definition PCAuswahl... Da hier mal wieder auf fällt, dass Case-Sensitivity eine Rolle spielt, musst dich entscheiden, welche schreibweise du möchtest
-
Ich hab es jetzt mal so gemacht:
#include <iostream> using namespace std; #pragma hdrstop #pragma argsused void UserEingaben (); void PcAuswahl(); void vergleich(); int main() { UserEingaben(); system("PAUSE"); } void UserEingaben () { int zahl,PcAuswahl; cout<<"Geben sie eine Zahl ein: \n"; cin>>zahl; srand( time (NULL) ); PcAuswahl = rand()%3+1; cout<<"Du hast eine"<< zahl <<"eingeben\n"; cout<<"Der Computer hat die"<< PcAuswahl <<"geweahlt\n"; }dann geht es auch aber ich frage mich nur ob das der Sinn der sache dann auch ist weil eigentlich ist diese Funktion doch dafür da um so Spaghetti Code zu vermeiden.
-
Ja, es ist schon richtig, den Code in Funktionen aufzuteilen - aber damit dein Programm funktioniert, müssen diese Funktionen untereinander Informationen austauschen (lies dir mal das Kapitel über Parameter und Rückgabewerte durch).
-
ok thx
ps. das kapitel kommt jetzt in dem tutorial^^
-
Kleine Anmerkung vielleicht noch:
srand() sollte nur einmal pro Programm aufgerufen werden, da, wenn es mehrmals in einer Sekunde mit time() aufgerufen wird - rand() immer den gleichen Wert zurückliefern wird.
Details gibt es im Magazin.