Ich versuche ein einfaches "Fizzbuzz" -Programm zu erstellen, bei dem jedes Mal, wenn ein Vielfaches von 3 gedruckt wird, 'fizz' daneben gedruckt wird und jedes Mal, wenn ein Vielfaches von 5 gedruckt wird, 'buzz' daneben gedruckt wird. Was jedoch stattdessen in diesem Programm passiert ist, dass die erste if-Anweisung jedes Mal wahr ist und die Ausgabe ist jede Zahl mit "Buzz!" daneben. Warum passiert dies? Was muss ich beachten, um dies richtig zu programmieren?Wie kann ich das beheben, wenn Aussage?
for(int index = 1; index <= 100; ++index) {
cout << index << endl;
if (index == 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100)
cout << " Buzz!" << endl;
else if(index == 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99)
cout << " Fizz!" << endl;
}
1. Diese 'wenn' tun nicht, was sie denken, dass sie tun. 2. Der Weg, um zu prüfen, ob eine Zahl durch 5 teilbar ist, besteht darin, den Rest der Division durch fünf mit Null zu vergleichen, d.h. 'Anzahl% 5 == 0' – dasblinkenlight