Я хотел проверить свои навыки на C++, выбив быстрое приложение fizzbuzz. Код для него размещен ниже. Однако, когда я запускаю это приложение, происходит что-то сумасшедшее. Вот мой код:FizzBuzz Disaster
#include <iostream>
#include <string>
using namespace std;
bool ismultiple3(int i) {
int res = i%3;
if (res == 0)
return true;
return false;
}
bool ismultiple5(int i) {
int res = i%5;
if (res == 0)
return true;
return false;
}
int main() {
string output;
for (int i = 1; i <= 100; i++) {
output = i;
if (ismultiple5(i) || ismultiple3(i)) {
output = "";
if (ismultiple3(i)) output.append("Fizz");
if (ismultiple5(i)) output.append("Buzz");
}
cout << output;
}
}
Поэтому, когда я запускаю и скомпилировал его, весь мой терминал перепутался. Кажется, что кодировка символов каким-то образом изменяется. Он по-прежнему принимает команды нормально, он просто отключается. Я попробовал продемонстрировать это.
Edit: В случае, если кто-нибудь натыкается на это, я в конечном итоге добавив заявление еще и делать cout << i
в нем, потому что моего компьютера г ++ компилятор не хватает поддержки C++ 11. Функции также были сокращены и объединены в одну функцию, которая принимает 2 аргумента, i
и n
.
Линия 'output = i' не делает то, что вы думаете, что она делает! – ruakh
Функция 'to_string' должна пригодиться. Также ваши функции 'ismultiple' намного длиннее, чем необходимо. –
Я украл этот вопрос для моего следующего имени группы. – Blastfurnace