c++ array
-
This post is deleted!
-
dan sollte ich den namen ausgeben wo doppelt erscheint
was bedeutet das? Kannst du ein Beispiel machen?
Wenn ich Max, Erika, Karen, Richard, Anna eingebe, was soll dann rauskommen?
-
This post is deleted!
-
Ah. Ich hatte mich nur gefragt, was du mit "erscheint" meinst. Da erscheint doch nichts? Und was ist, wenn die Eingabe "Erika, Erika, Erika, Max, Max" ist? Erika ist dann dreifach (nicht doppelt) und Max ist doppelt. Und was ist bei "Erika, Erika, Max, Max, Moritz"?
-
This post is deleted!
-
Da siehst du mal. Eine korrekte Aufgabenstellung ist schonmal das A und O.
Lösungsvorschlag: schau dir mal https://stackoverflow.com/questions/16792694/maximum-occurrences an, wo dein Problem auf mehrere Weisen gelöst wird.
-
This post is deleted!
-
Was meinst du mit "geht nicht"? Bitte stell genaue Fragen! Wir können nicht in deinen Kopf gucken, was du mit "geht nicht" meinst.
Dein Codeschnippsel wird, nachdem man das fehlende Gerüst ergänzt, jedenfalls korrekt ein doppeltes Wort ausgeben. Problematisch wird er, wenn es keine Doppelung gibt, oder mehrere. Aber das scheint nicht dein Problem zu sein. Daher: Vollständiger Code, vollständige Problembeschreibung!
Wenn ich rate, würde ich darauf tippen, dass du den Header
string
nicht included hast. Kann man halt ohne vollständigen Code oder Fehlerbeschreibung nicht sagen.
-
mit diesem code gelingt es mir nicht wenn ich zum beispiel: anna, lorenz, david, anna eingebe das ich anna rausbekomme weil das if nicht funkzioniert
`#include <iostream> using namespace std; int main(){ string name[5], gleich; int n = 1; for (int i = 0; i < 5; i++) { cout << "Input name " << n << endl; cin >> name[i]; n++; } for (int k = 0; k < 5; k++) { for (int j = 1; j < 5; j++) { if (name[k] == name[j]) { gleich = name[k]; } } } cout << "gleicher name: " << gleich; }
-
consolen output:
Input name 1
anna
Input name 2
lorenz
Input name 3
david
Input name 4
anna
Input name 5
jakob
gleicher name: jakob
-
if (name[k] == name[j]) {
https://www.cplusplus.com/reference/string/string/compare/
if ( name[k].compare(name[j]) == 0 )
-
for (int k = 0; k < 5; k++) { for (int j = 1; j < 5; j++) {
Die äußere Schleife läuft von 0 bis 4, die innere von 1 bis 4. Daher ist beispielsweise auch 4 und 4 eine Kombination, die geprüft wird. name[4] ist bei dir 'jakob', und 'jakob' ist gleich 'jakob'. Fang j mal bei k+1 anstatt bei 1 an, dann ist j niemals gleich k und du kommst einer Lösung schon näher.
-
@SeppJ danke du hast mir sehr geholfen, es funktioniert einwandfrei Lg
-
edit :Hier stand etwas hilfreiches, aber ich habe es gelöscht, so wie du deine Beiträge. Tschüss!
-
if (name[k] == name[j]) {
https://www.cplusplus.com/reference/string/string/compare/
if ( name[k].compare(name[j]) == 0 )
Gibts einen Fall, wo das zu unterschiedlichen Ergebnissen führt?
-
if (name[k] == name[j]) {
https://www.cplusplus.com/reference/string/string/compare/
if ( name[k].compare(name[j]) == 0 )
Gibts einen Fall, wo das zu unterschiedlichen Ergebnissen führt?
Der Standard definiert sogar, dass
==
(und die anderen Vergleichoperatoren) mittelscompare
implementiert werden sollen.
-
Dieser Beitrag wurde gelöscht!
Dieser Beitrag wurde gelöscht!
Dieser Beitrag wurde gelöscht!
Dieser Beitrag wurde gelöscht!
Oh, ein echter Kevin O.o