hangman programmierung
-
mir ist bewusst dass es eine Designkatastrophe ist, trotz deines guten arguments würde ich gerne erstmal die grundfunktionen begreifen, danach mach ich mich mit ökonomischem programmieren vertraut, ich lerne ja auch beim autofahren nicht sofort umweltschonend zu fahren
habs jetzt übrigens gelöst, es hat lediglich die länge der arrays gefehlt und die richtige definition des geraten arraysVielen Dank für die Tipps, ich glaube ich sollte hier mal öfter vorbeischauen
lg, Rodem
-
so, schon registriert, freu mich auf eine interessante zusammenarbeit
EDIT:
dahingehend auch gleich schon die nächste Frage: wie kann man in C den Inhalt gesamter arrays vergleichen? einfach perif(array1==array2) { printf("GLEICH!"); } else { printf("UNGLEICH!"); }
?
lg, Rodem
-
Nein.
Du musst jedes Element einzeln vergleichen.1
Wenn du aber Zeichenketten vergleichen willst, kannst du dafür
strcmp()
verwenden. Das is tin der string.h deklariert.1Es geht auch mit memcmp aus der string.h
Tipp:
Markiere deinen Code und klicje auf den C/C++ Button unter den
Dann bleibt die Formatierung erhalten und der Code wird farbig und bunt.
-
formatierung erledigt
heißt also folgender Code wäre funktional?#include <stdio.h> int main() { char array1[100]={a,b,c,d,e} char array2[100]={a,b,c,x,y,z} int i=0; int zaehler=0; for(i=0;i<100;i++) { if(array1[i]==array2[i]) { zaehler++; } } if(zaehler==100) { printf("Arrays sind gleich!"); } else { printf("Arrays sind gleich!"); } return 0; }
selbstverständlich immer mit negativem Ergebnis in diesem Fall...
-
Rodem schrieb:
danach mach ich mich mit ökonomischem programmieren vertraut, ich lerne ja auch beim autofahren nicht sofort umweltschonend zu fahren
Ökonomisch (schnell?) ist ja noch nicht, es geht darum, dass du im Moment die Kupplung nicht richtig benutzt und daher das Auto an jeder Kreuzung abwürgen wirst. Strukturierte Programmierung ist Grundfunktion.
Rodem schrieb:
heißt also folgender Code wäre funktional?
Nein, schon in der dritten Zeile compiliert das nicht und das hättest du auch leicht feststellen können. Selbst wenn man die Fehler beseitigt wäre das Ergebnis immer noch falsch. Die Frage die sich hier stellt ist, was ist array1[5] bis array1[99] und ebenso bei array2 und was passiert, wenn du diese Werte vergleichst und möchtest du das überhaupt?
-
hmm, so gesehen hast du natürlich recht
ich denke ich werde mich damit mal ein bisschen mehr auseinandersetzen, vielen Dank für den HinweisFlüchtigkeitsfehler beseitigt ('' und ; vergessen), dennoch ist das Ergebnis wie du prophezeit hast falsch, ich verstehe nur leider noch nicht wieso
-
Ich habe in meinen Beitrag oben noch eine Antwort auf deinen Code reineditiert, während du schon wieder geantwortet hast.
-
habe den Code mal wie folgt editiert:
#include <stdio.h> int main() { char array1[5]={'a','b','c','d','e'}; char array2[5]={'a','b','c','x','y'}; int i=0; int zaehler=0; for(i=0;i<5;i++) { if(array1[i]==array2[i]) { zaehler++; } } if(zaehler==5) { printf("Arrays sind gleich!"); } else { printf("Arrays sind gleich!"); } return 0; }
leider sind die Ergebnisse nachwie vor falsch, bin etwas ratlos
-
oh gott ich depp -.-
tut mir leid...
ist ja offensichtlich was ich falsch gemacht habe ^^so, nachdem ich die Ausgaben entsprechend angepasst habe funktioniert auch alles ^^
danke für deine Hilfe
-
Deine Arrays sollten nullterminiert sein, wenn du mit Zeichenketten arbeitest
Dann kommst du auch mit den Funktionen aus der string.h zurecht.... char array1[] = "abcde"; // Der Compiler hängt automatisch die '\0' dran und bestimmt die Länge char array2[] = "abcxy"; ...
-
ok, danke für den Hinweis