Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Palindromtest Fehlersuche c++ » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 3 Beiträge
Kaimera

Hier mal anschaulich in Java:

code:
1:
2:
3:
4:
5:
6:
7:
8:
	public static String istPalindrom(String string) {
 		for (int i = 0; i < string.length(); i++) {
 			if (string.charAt(i) != string.charAt(string.length()-1-i)) {
 				return "Ist kein Palindrom.";
 			}
 		}
 		return "Ist ein Palindrom.";
 	}


Es wird ein String zurückgegeben. In C# würdest du den mit (glaube ich) Console.WriteLine(IstPalindrom()); ausgeben.
as_string

Mehrere Dinge:
Du hast den Index von hinten her falsch berechnet. Das muss (laenge - i - 1) sein.
Das hier:
code:
1:
2:
3:
4:
5:
6:
	if (istPalindrom== true) {
		return(istPalindrom);
	}
	else {
		return(istPalindrom);
	}

Hier macht das if keinen Sinn: Du hast sowohl im if als auch im else den identischen Ausdruck stehen, dann brauchst Du auch keine Unterscheidung, wenn Du so wie so dasselbe machst. Also nur
code:
1:
return istPalindrom
Bitte auch ohne Klammer. return ist keine Funktion sondern ein Schlüsselwort!

Du machst mit dem Rückgabewert Deiner Funktion gar nichts. Du musst doch irgendetwas ausgeben, sonst sieht ja keiner das Ergebnis.

Gruß
Marco
Student12345 Palindromtest Fehlersuche c++

Meine Frage:
Hallo, und zwar hatte ich die Aufgabe, eine Funktion zu entwickeln, welche Überprüft ob ein Wort ein Palindrom ist oder nicht. Nun habe ich eins geschrieben, und bin mir auch ziemlich sicher dass es so funktionieren sollte. Jedoch versuche ich es seit einigen Stunden zu starten doch es funktioniert einfach nicht beziehungsweise ich finde meinen Fehler einfach nicht. Ich hoffe auf Hilfe und vielleicht könnte ja jemand mal drüber gucken.

Meine Ideen:
Hier mein Programm:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
#include <iostream>
#include <string>
using namespace std;

bool palindrom(string wort) {
	bool istPalindrom = true;
	int laenge = wort.size();

	for (int i = 0; i < laenge; i++) {
		if (wort.at(i) != wort.at(i - laenge - 1)) {
			istPalindrom = false;
		}

	}
	if (istPalindrom== true) {
		return(istPalindrom);
	}
	else {
		return(istPalindrom);
	}
}

int main() {
	cout << "Wort eingeben" << endl;
	string wort;
	cin>>wort;
	palindrom(wort);
}