Spaß mit Früchten (war: C++ programm)
-
@array24,
Dein Code ist immer noch nicht korrekt.
Vertausche mal Apfel und Banane, und schau was passiert.
-
Sone schrieb:
Edit: Volkard, war das jetzt die rein syntaktische Korrektur, oder will der TE tatsächlich was anderes als ich denke?
Nur Syntax, ohne über was anderes nachzudenken.
-
Meensch Jung, mach das doch vernünftig, Funktionalitäten auslagern und so...
#include <iostream> #include <string> using namespace std; bool has_char_at ( const string& str, char c, unsigned pos ) { if ( pos < str.length( )) return c == str[pos]; return false; } int main ( void ) { char c = 'a'; int pos = 1; string fruechte[] = { "Ananas", "Apfel", "Banane", "Birne", "Blaubeere", "Kartoffel" }; for ( int i = 0; i < fruechte->size(); i++ ) if ( has_char_at ( fruechte[i], c, pos )) cout << fruechte[i] << endl; return 0; }
-
Nach dem soviel Off-Topic Gedöngs kam, können die Trolle nicht barmherzig sein und den TE in Ruhe lassen?
-
ich sehe hier zurzeit nur einen, registrierten troll sein unwesen treiben.
btw.
http://www.duden.de/suchen/dudenonline/Gedöns
-
trolldetector schrieb:
ich sehe hier zurzeit nur einen, registrierten troll sein unwesen treiben.
btw.
http://www.duden.de/suchen/dudenonline/GedönsMeinst du c2010?
(Das ich mit zur Off-Topic Diskussion beitrug kann nicht als Troll-Aktion angesehen werden, weil das Thema zu diesem Zeitpunkt eigentlich abgeschlossen war. Dass der TE jetzt wieder fragt, liegt daran, dass er die Tipps nicht achtet)
~Im Übrigen ist es ziemlich ironisch, mich wegen einem kleinen, unbedeutenden orthographischen Fehler auf den Duden zu verweisen und dabei nicht einmal die Groß- und Kleinschreibung zu beherrschen.~Obwohl die Aufgabe ja irgendwie schon gelöst ist.
Aber dein Code ist doch immer noch falsch! Du hast die Abfrage nicht so abgeändert wie ich dir geraten habe.
Die Aufgabenstellung ignorierst du wohl auch, sonst würdest du nicht sagen, der Code wäre schon (irgendwie) gelöst.
Wenn du nicht hörst, kann dir auch nicht geholfen werden.
-
#include <iostream> #include <string> using namespace std; int main() { char Eingabe; cin >> Eingabe; cout << "(A)alle Fruechte, die an 2. Stelle ein a haben, ausgeben " << endl; cout << "(B) aus dem Apfel eine Apfelsine machen, alten und neuen Wert ausgeben" << endl; cout << "(C)alle Fruechte, deren Name länger als 8 Zeichen ist, ausgeben " << endl; cout << " (D) (freiwillig) alle Fruechte, die im Namen beere haben,den Bestandteil ohne beere ausgeben" << endl; string fruechte[5] = {"Ananas", "Apfel", "Banane", "Birne", "Blaubeere"}; switch(Eingabe) { case 'a': Eingabe = 'A'; for (int i = 0; i < 5; i++) { if (fruechte[i][1] == 'a' ) { cout << fruechte[i] << endl; } } break; case'b': Eingabe = 'B'; int tmp; string fruechte = "Apfel"; fruechte == "Apfelsine"; fruechte == tmp; cout << tmp << endl; break; defaul: break; } }
Ich hab versucht das string frucht zu verändern und dann in eine neue variable einzulesen und diese Auszugeben .
Was mache ich falsch ?
Ich komme seit stunden nicht auf den Fehler.
Bitte um tipps.
-
array24 schrieb:
#include <iostream> #include <string> using namespace std; int main() { char Eingabe; cin >> Eingabe; cout << "(A)alle Fruechte, die an 2. Stelle ein a haben, ausgeben " << endl; cout << "(B) aus dem Apfel eine Apfelsine machen, alten und neuen Wert ausgeben" << endl; cout << "(C)alle Fruechte, deren Name länger als 8 Zeichen ist, ausgeben " << endl; cout << " (D) (freiwillig) alle Fruechte, die im Namen beere haben,den Bestandteil ohne beere ausgeben" << endl; string fruechte[5] = {"Ananas", "Apfel", "Banane", "Birne", "Blaubeere"}; switch(Eingabe) { case 'a': Eingabe = 'A'; for (int i = 0; i < 5; i++) { if (fruechte[i][1] == 'a' ) { cout << fruechte[i] << endl; } } break; case'b': Eingabe = 'B'; int tmp; string fruechte = "Apfel"; fruechte == "Apfelsine"; fruechte == tmp; cout << tmp << endl; break; defaul: break; } }
Ich hab versucht das string frucht zu verändern und dann in eine neue variable einzulesen und diese Auszugeben .
Was mache ich falsch ?
Ich komme seit stunden nicht auf den Fehler.
Bitte um tipps.
wie wärs wenn du deinen kot noch weiter in die länge ziehst, so ca. 20 bis 50 Leerzeilen pro codezeile, damit gar keine sau mehr nen überblick hat?
-
-
array24 schrieb:
#include <iostream> #include <string> using namespace std; int main() { char Eingabe; cin >> Eingabe; cout << "(A)alle Fruechte, die an 2. Stelle ein a haben, ausgeben " << endl; cout << "(B) aus dem Apfel eine Apfelsine machen, alten und neuen Wert ausgeben" << endl; cout << "(C)alle Fruechte, deren Name länger als 8 Zeichen ist, ausgeben " << endl; cout << " (D) (freiwillig) alle Fruechte, die im Namen beere haben,den Bestandteil ohne beere ausgeben" << endl; string fruechte[5] = {"Ananas", "Apfel", "Banane", "Birne", "Blaubeere"}; switch(Eingabe) { case 'a': Eingabe = 'A'; for (int i = 0; i < 5; i++) { if (fruechte[i][1] == 'a' ) { cout << fruechte[i] << endl; } } break; case'b': Eingabe = 'B'; int tmp; string fruechte = "Apfel"; fruechte == "Apfelsine"; fruechte == tmp; cout << tmp << endl; break; defaul: break; } }
Ich hab versucht das string frucht zu verändern und dann in eine neue variable einzulesen und diese Auszugeben .
Was mache ich falsch ?
Ich komme seit stunden nicht auf den Fehler.
Bitte um tipps.
warte, mast0r sone kommt gleich, der fixt dir das
-
Der Code enthält einige syntaktische Fehler, wie das fehlende 't' bei dem
default
(Zeile 83).Wenn man den Code ordentlich formatiert kommt man auf
#include <iostream> #include <string> using namespace std; int main() { char Eingabe; cin >> Eingabe; cout << "(A)alle Fruechte, die an 2. Stelle ein a haben, ausgeben " << endl; cout << "(B) aus dem Apfel eine Apfelsine machen, alten und neuen Wert ausgeben" << endl; cout << "(C)alle Fruechte, deren Name länger als 8 Zeichen ist, ausgeben " << endl; cout << " (D) (freiwillig) alle Fruechte, die im Namen beere haben,den Bestandteil ohne beere ausgeben" << endl; string fruechte[5] = {"Ananas", "Apfel", "Banane", "Birne", "Blaubeere"}; switch(Eingabe) { case 'a': Eingabe = 'A'; for (int i = 0; i < 5; i++) if (fruechte[i][1] == 'a' ) cout << fruechte[i] << endl; break; case'b': Eingabe = 'B'; int tmp; string fruechte = "Apfel"; fruechte == "Apfelsine"; fruechte == tmp; cout << tmp << endl; break; } }
Anscheinend hast du einige Sachen missverstanden.
Was denkst du soll bspw. die Zeilefruechte == "Apfelsine";
bewirken?
OderEingabe = 'A';
?
Ich hab versucht das string frucht zu verändern und dann in eine neue variable einzulesen und diese Auszugeben .
Meinst du mit einlesen zuweisen?
Und wie wolltest du den String verändern?Ich gebe dir den dringenden Rat, dir ein gutes Grundlagenbuch zu holen. Näheres findest du hier.
-
-
TIPP:
In eine Schleife alle gewünschte Aktionen solagen ausführen bis für das "Progamm/Schleife beeden" eine gewünschte Taste oder Tastenkombination gedrückt worden. Sonst für neuen Auswahl muß man immer wieder deine Anwendung neu starten.
-
-
Nathan schrieb:
Ewald02 schrieb:
lol
Ich hätte das selbe getan.
Nach so einem Offtopic-Gerede wie diesem hier...Aber gelernt hat er wohl noch nix - weder hier, noch im anderem Forum
-
Klarinette schrieb:
Nathan schrieb:
Ewald02 schrieb:
lol
Ich hätte das selbe getan.
Nach so einem Offtopic-Gerede wie diesem hier...Hier hat er 12 Stunden später den Thread eröffnet.
-
Nadann
Die vorgemachte Lösung von Seite 2 wird er wohl überlesen haben.
-
a) alle Früchte, die an 2. Stelle ein 'a' haben, ausgeben
b) aus dem Apfel eine Apfelsine machen, alten und neuen Wert ausgeben
c) alle Früchte, deren Name länger als 8 Zeichen ist, ausgeben
d) alle Früchte, deren Name auf 'h' endet, ausgeben
e) (freiwillig) alle Früchte, die im Namen "beere" haben,
den Bestandteil ohne beere ausgebenAnsatz:
a) gelöst
b) strings verketten oder http://www.cplusplus.com/reference/string/string/insert/
c) http://www.cplusplus.com/reference/string/string/length/
d) Arbeite mit Chars oder mit Index Operator, String Methode "at"
e) http://www.cplusplus.com/reference/string/string/find/vieleicht hat einer besseren lösung.
-
geht nicht
-
arry24 schrieb:
geht nicht
schade. Und nun?