отладка — Fizzbuzz в C ++. печать каждой строки перед целочисленной печатью

Пробовал писать fizzbuzz на C ++, но перед выводом на консоль списка целых чисел он печатает каждую строку «Fizzbuzz», «fizz», «buzz»

Образец вывода:

FizzBuzz
шипение
жужжание
1
2
шипение
4

Код:

#include <iostream>
using namespace std;

int main(int argc, const char * argv[]) {

int i;
for (i = 0; i <=100; i++) {
if((i % 15) == 0)
cout << "Fizzbuzz" << endl;
if((i % 3) == 0)
cout << "Fizz"<< endl;
if((i % 5) == 0)
cout << "Buzz" << endl;
else
cout << i <<endl;
}}

-2

Решение

При проверке нескольких условий, для которых требуется только одна ветвь, необходимо использовать else ifпосле первого if, Затем первый Филиал, для которого выполняется условие, будет принято:

    if((i % 15) == 0)
cout << "Fizzbuzz" << endl;
else if((i % 3) == 0)
cout << "Fizz"<< endl;
else if((i % 5) == 0)
cout << "Buzz" << endl;
else
cout << i <<endl;

В вашем коде проверяется каждое условие и берется каждая ветвь, для которой выполняется условие. else регистр в вашем коде будет взят, если прошлой if не был взят, т. е. принадлежит к последнему if только. Когда используешь else if, else ветвь берется если никто условия были выполнены.

2

Другие решения


По вопросам рекламы [email protected]