Nicht nachvollziehbare Ausgabe in der Console
-
soong schrieb:
Also die geheimzahl[3] soll eine Geheimzahl mit vier Ziffern haben und die pin[3] soll auch nur vier Ziffern aufnehmen.
Entschuldige, was meinst du mit Binary?
Vielleicht noch als zusätzliche Info, das Ubunut 12.04 LTS nutze ich unter Oracle VM VirtualBox 4.2.12.
-
strangee schrieb:
Dein Code stimmt.
Tut er nicht. Siehe Nathans Post.
-
soong schrieb:
Also die geheimzahl[3] soll eine Geheimzahl mit vier Ziffern haben und die pin[3] soll auch nur vier Ziffern aufnehmen.
Kommt dir das selber nicht irgendwie komisch vor, wenn du diesen Satz schreibst? Guck dir nochmal Arrays an.
-
SeppJ schrieb:
soong schrieb:
Also die geheimzahl[3] soll eine Geheimzahl mit vier Ziffern haben und die pin[3] soll auch nur vier Ziffern aufnehmen.
Kommt dir das selber nicht irgendwie komisch vor, wenn du diesen Satz schreibst? Guck dir nochmal Arrays an.
Also das Array geheimzahl[3] ist hier eigentlich nur nebensächlich. Wichtig ist das Array pin[3]. Ich möchte halt drei verschiedene Pins haben, die je vier Ziffern aufweisen. Diese Ziffern möchte ich dann sozusagen später dann mit den Ziffern des Arrays geheimzahl[3] vergleichen. Was mir noch komisch vorkommt, dass beim "Lauf" eine 8 ausgegeben wird und nur ein mal die Pin generiert wird.
-
Fang nicht an, dich selber ausweichend zu verteidigen, wenn du nach Fehlern fragst und man dir die Fehler nennt! Geh lieber davon aus, dass man dir deine Fehler genannt hat!
SeppJ schrieb:
Guck dir nochmal Arrays an.
Wichtige Stelle nochmal markiert.
-
SeppJ schrieb:
Fang nicht an, dich selber ausweichend zu verteidigen, wenn du nach Fehlern fragst und man dir die Fehler nennt! Geh lieber davon aus, dass man dir deine Fehler genannt hat!
SeppJ schrieb:
Guck dir nochmal Arrays an.
Wichtige Stelle nochmal markiert.
Danke, ich übe mich noch, hab Nachsicht
-
OK, nochmal:
Wie viele Zahlen passen in das Array int pin[3]?
Antworte nur mit einer Zahl.
-
Danke an dieser Stelle für den Hinweis mit den Arrays. Ich habe das Programm umgeschrieben - das wollte ich im Grunde erreichen:
#include <stdio.h> #include <stdlib.h> #include <time.h> #include "zufallszahl.h" int main(void) { int min; min = 1; int max; max = 9; int geheimzahl[3][4]; geheimzahl[1][1] = 1; geheimzahl[1][2] = 1; geheimzahl[1][3] = 1; geheimzahl[1][4] = 2; printf("Deine Geheimzahl ist: %d-%d-%d-%d\n\n", geheimzahl[1][1], geheimzahl[1][2], geheimzahl[1][3], geheimzahl[1][4]); for (int z = 0; z < 10000; z++) { for (int u = 0; u < 3; u++) { int pin[3][4]; for (int k = 0; k < 4; k++) { int gen = liefere_ganze_zufallszahl(min,max); pin[u][k] = gen; } if (geheimzahl[1][1] == pin[1][1] && geheimzahl[1][2] == pin[1][2] && geheimzahl[1][3] == pin[1][3] && geheimzahl[1][4] == pin[1][4]) { printf("Erratene Pin: %d-%d-%d-%d\n", pin[1][1], pin[1][2], pin[1][3], pin[1][4]); printf("Erkannt! Beim %d. Versuch\n", z); z = 10000; } else { //puts("NICHT erkannt!"); ; } } } }
Ausgabe:
Deine Geheimzahl ist: 1-1-1-2
Erratene Pin: 1-1-1-2
Erkannt! Beim 2675. VersuchTrotzdem ist es für mich weiterhin schleierhaft, warum er bei der Ausgabe, beim "Lauf", eine 8 ausgegeben hat und nicht die drei. Hat das was vielleicht mit dem Puffer zutun?
-
...
-
Nathan schrieb:
OK, nochmal:
Wie viele Zahlen passen in das Array int pin[3]?
Antworte nur mit einer Zahl.Ich antworte mal an seiner statt: Leider nur drei. Leider wurde die vierte Stelle daher in die Pampa geschrieben.
Soong, achte doch mal auf das, was die Leut Dir hier sagen, sie tun's doch schließlich nicht nur zum Selbstzweck.