Es gibt Leute, die denken, die Posten hier einfach ihre Aufgaben und andere User machen die schon. Davon hat eigentlich im Endeffekt keiner was und wegen solchen Leuten werden manchen nicht geholfen.
Die letzte Problemaufgabe die ich habe ist diese hier. Ich poste einfach mal die Aufgabenstellung damit ihr, bzw. du, wisst, worum es geht.
Aufgabe:
Schreiben sie Ein Programm, das 10 Zahlen einliest und jede Zahl ausgibt, die mit keiner der vorhergehenden Zahlen übereinstimmt. Verwenden sie einen Vektor für diese Aufgabe. Bedenken Sie, dass im ungünstigsten Fall alle 10 Zahlen verschieden sind!
Ich habe mir jetzt folgendes ausgedacht:
Mein erster Lösungsansatz war mit BOOL:
C++:
bool Contains(int vek[],int eingabe,int laenge)
{
for(int i=0;i<laenge;i++) //durchlaufe das array
{
if(vek[i]==eingabe)//ist das N-Element identisch mit der eingabe
{
return true; // dann gebe ja zurueck
}
}
return false; //ansonsten nein
}
int main(void)
{
//ein 10stelliges array erstellen und es {} leer initialisieren ( d.h. an jeder stelle steht 0}
int vektor[10] = {};
//hilfsvariable fuer eingabe
int eingabe;
//zahlen abfragen und fuellen
for(int i=0;i<sizeof(vektor)/sizeof(vektor[0]);i++)
{
printf("Geben Sie eine Zahl ein und bestaetigen sie mit ENTER\n");
scanf("%i",&eingabe);//benutzer eingabe einlesen
//ueberpruefen ob zahl bereits eingegeben wurde
if(!Contains(vektor,eingabe,sizeof(vektor)/sizeof(vektor[0])))
{
printf("Ausgabe: %i \n",eingabe);
vektor[i]=eingabe;
}
//else
// printf("%i wurde breits eingegeben\n",eingabe);
}
return 0;
}
Das PRoblem was ich jetzt habe, ist, dass mein Microsoft Visual C++ 6.0 dieses Bool und Contain nicht erkennen will.
Problem:
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(1) : error C2061: Syntaxfehler : Bezeichner 'Contains'
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(1) : error C2059: Syntaxfehler : ';'
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(1) : error C2059: Syntaxfehler : 'type'
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(17) : error C2059: Syntaxfehler : '}'
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(23) : error C2143: Syntaxfehler : Fehlendes ';' vor 'type'
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(23) : error C2143: Syntaxfehler : Fehlendes ';' vor 'type'
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(23) : error C2143: Syntaxfehler : Fehlendes ')' vor 'type'
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(23) : error C2143: Syntaxfehler : Fehlendes ';' vor 'type'
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(23) : error C2065: 'i' : nichtdeklarierter Bezeichner
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(23) : warning C4552: '<' : Operator hat keine Auswirkungen; Operator mit Seiteneffekt erwartet
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(23) : error C2059: Syntaxfehler : ')'
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(24) : error C2143: Syntaxfehler : Fehlendes ';' vor '{'
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(25) : warning C4013: 'printf' undefiniert; Annahme: extern mit Rueckgabetyp int
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(26) : warning C4013: 'scanf' undefiniert; Annahme: extern mit Rueckgabetyp int
C:\Programme\Microsoft Visual Studio\MyProjects\jh\jh.c(29) : warning C4013: 'Contains' undefiniert; Annahme: extern mit Rueckgabetyp int
Fehler beim Ausführen von cl.exe.
Als zweites habe ich dann dieses Bool aufgrund eines "Tipps" von einem aus der Schule in Int geändert.
Dies sah dann wie folgt aus:
C++:
int Contains(int vek[], int eingabe, int laenge)
{
int i;
for (i = 0; i <laenge; i++) //durchlaufe das array
{
if (vek[i] == eingabe)//ist das N-Element identisch mit der eingabe
{
return 1; // dann gebe ja zurueck
}
}
return 0; //ansonsten nein
}
int main(void)
{
//ein 10stelliges array erstellen und es {} leer initialisieren ( d.h. an jeder stelle steht 0}
int vektor[10] = {};
//hilfsvariable fuer eingabe
int eingabe;
//zahlen abfragen und fuellen
for(int i=0;i<sizeof(vektor)/sizeof(vektor[0]);i++)
{
printf("Geben Sie eine Zahl ein und bestaetigen sie mit ENTER\n");
scanf("%i",&eingabe);//benutzer eingabe einlesen
//ueberpruefen ob zahl bereits eingegeben wurde
if(!Contains(vektor,eingabe,sizeof(vektor)/sizeof(vektor[0])))
{
printf("Ausgabe: %i \n",eingabe);
vektor[i]=eingabe;
}
//else
// printf("%i wurde breits eingegeben\n",eingabe);
}
return 0;
}
Jetzt sind es nur noch 8 Fehler, die er meldet. Deshalb vermute ich irgendwelche Fehler im anderen Teil des Programmes. Diese Vermutung kann auch falsch sein
Ich hoffe, du kannst mir wieder helfen bzw. auch andere.
Für mich sind das die 2 Aufgaben die ich am schwierigsten bis jetzt sind.
Verzeiht mir wieder solche dummen Fehler, aber selbst sieht man sie nicht, bis ein Erfahrener drüber schaut.