okay, da Sie keine Strings verwenden können, muss ich werde meine Antwort ändern. Also für den Sack der Geschwindigkeit. Ich werde Mathe verwenden. Zero ist ein bisschen ein Problem, aber habe einfach eine if-Anweisung, um den Platzhalter nach der Division zu überprüfen, und geh einfach von dort. Ich bin mir sicher, dass es eine Bibliothek gibt, mit der du das leichter machen kannst, aber es klingt nicht so, als könntest du das alles benutzen, fast so, als ob es Hausaufgaben wären. Also müssen wir es so machen. Sorgen Sie auch nicht um die Dezimalstelle, da es die Dezimalstelle absenkt. soo 427/100 = 4.27 was in int wird nur 4. Ich glaube, der Compiler schneidet immer ab, wenn ich falsch liege, lass es mich wissen.
void MasterMind::evaluateNum(int &bin)
{
std::vector<int> numbers();
int thousand,hundred,ten;
int placeholder = 0;
thousand = 1000;
//bin = 4327
placeholder = thousand/bin;
//subtract the thousand position out of bin
bin -= placeholder * thousand;
numbers.push_back(placeholder);
//now you have 327
//subtract the hundreds spot now
hundred = 100;
placeholder = hundred/bin;
bin -= placeholder * thousand;
numbers.push_back(placeholder);
//now you have 27 now tens
ten = 10;
placeholder = ten/bin;
bin -= placeholder * ten;
//now you have just 7 in bin and 2 in place holder
numbers.push_back(placeholder);
numbers.push_back(bin);
}
Das ist, wie Sie die Ints auseinander ziehen, die vom Benutzer übergeben wurden. Sie sollten eine Überprüfung durchführen, um sicherzustellen, dass die Nummer nicht zu groß ist. Sie müssen eine Überprüfung/Bedingung für 0 hinzufügen und den Platzhalter einfach weglassen, wenn der Wert 0 ist, also anstelle von bin -= placeholder * ten
. es wäre bin -= ten
; oder einfach überspringen Sie es vollständig, ich erinnere mich nicht, wenn C++ 026 als 026 oder nur 26 behandelt. Führen Sie es einmal mit einer Null und Sie werden Ihre Antwort haben.
So erwarten Sie 1010? Oder 1234? Oder 1 eingeben 2 eingeben 3 usw.? – Caperneoignis
Was möchten Sie in diesem Vektor von Ints? Nur die eine Nummer? – cuniculus
yea @Caperneoignis ein 4letter binär – SDFSF