C Programm das zB erkennt ob 2002 umgekehrt das gleiche ist?

...komplette Frage anzeigen

6 Antworten

Nur mit if und else:

if(2002 / 1000 == 2002 % 1000)

Prozent ist Modulo, das heißt du dividierst die Zahl durch 1000 und als Ergebnis wird der Rest angegeben, in diesem Fall 2. Durch entsprechende Bearbeitung der darauffolgenden Zahlen kannst du so die ganze Zahl prüfen, einfach von einer if in die nächste gehen so lange die Bedingung erfüllt ist, wenn nicht ins else und zB ausgeben das die Zahl gespiegelt nicht gleich ist

Ohne Schleifen wird das sehr anstrengend. Bring doch kurz ne for-Schleife bei, dann ist dann in 5min gemacht(hab es gerade just4fun in der Zeit ca. programmiert).

Der Haupt-Trick ist auszunutzen, das c netterweise rundet beim divideren von Integer. Beispiel:

int a=7692;

int b[10]; b[0]=a/1000 ergibt 7. Wenn ich jetzt a aktualisiere mit a-=b[0]*1000 und b[1]=a/100 ausrechne erhalte ich 6 usw.



In jeder Programmiersprache könntest Du es so anfangen:

Zerlege den Eingabestring in einen Array oder ein Liste aus einzelnen Zeichen. Geh diesen Array rückwärts mit einer for-Schleife durch und baue dabei eine neue Zeichenkette durch Verketten der Einzelzeichen auf. Dann vergleichst Du den ursprünglichen String mit dem rückwärts aufgebauten. Wenn sie gleich sind, weißt Du bescheid.

Wir sind erst am Anfang von C. Wir haben noch keine schleifen oder String oder sowas gelernt xD ziemlich intensiv haben wir if gelernt.

0
@pogu18

OK, C ist nicht meine starke Seite. Wenn die std-Lib, oder welche auch immer, eine fertige Stringumkehr-Funktion hat, kannst Du die natürlich verwenden, ansonsten wirst Du schon eine Schleife benötigen.

0

Du könntest einen String machen, bei dem du jede Zahl einzeln eingeben musst. Dann lässt du ihn rückwärts auslesen und auf einen neuen String legen. Ist der neue String gleich dem ersten ist es ein Palindrom.

Wir sind erst am Anfang von C. Wir haben noch keine schleifen oder String oder sowas gelernt xD ziemlich intensiv haben wir if gelernt.

0

Am besten die Zahl in ein Array schmeißen, dort mit einer for Schleife die vorderste Zahl mit der hintersten vergleichen bis du in der Mitte des Arrays angelangt bist.

Wir sind erst am Anfang von C. Wir haben noch keine schleifen oder String oder sowas gelernt xD ziemlich intensiv haben wir if gelernt.

0

Naja wenn du es auf eine feste Länge prüfen sollst, kannste den String zerlegen (in Java müsstestes zu nem CharArray machen, in C geht das meine ich auch so).

Da ich in C nicht sooo fit bin einfach mal ne Idee in Java.

Sagen wir du speicherst es in eine Variable namens "Test"

Dazu erzeugen wir noch einen Boolean testEq.

Der Ablauf ist jetzt einfach, dass du das erste mit dem letzten Element vergleichst. Wenn das übereinstimmt wird das gleiche mit dem nächsten Element gemacht.

public static void main(String[] args){
String test = "2002";
char[] TestA = test.toCharArray();
boolean TestEq=false;
if(TestA[0]==TestA[TestA.length-1]){
if(TestA[1]==TestA[TestA.length-2]){
TestEq=true;
}
}
}

Was möchtest Du wissen?