Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

# FizzBuzz question

Posted on 2013-01-11
Medium Priority
410 Views
"Write a program that prints the numbers from 1 to 100. But for multiples of three print “Fizz” instead of the number and for the multiples of five print “Buzz”. For numbers which are multiples of both three and five print “FizzBuzz”." from http://c2.com/cgi/wiki?FizzBuzzTest

the below prints the multiples of 3 and of 5 but not of both. Why?
``````#include <iostream>

using namespace std;
int main(int argc, const char * argv[])
{
for (int i = 1; i < 101; i++)
{

if(i % 3 == 0)
{
cout << "Fizz" << endl;
}
else if(i % 5 == 0)
{
cout << "Buzz!" << endl;
}
else if ((i % 3 == 0) && (i % 5 == 0))
{
cout << "FizzBuzz, WHAAAAT!" << endl;
}
else
{
cout << i << endl;
}
}

return 0;
}
``````
0
Question by:Mark_Co
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 2

LVL 86

Assisted Solution

jkr earned 668 total points
ID: 38769358
It's

``````else if ((i % 3 == 0) && (i % 5 == 0))
``````
``````else if ((i % 3 == 0) || (i % 5 == 0))
``````
0

LVL 31

Assisted Solution

farzanj earned 1332 total points
ID: 38769371
You statement:
else if ((i % 3 == 0) && (i % 5 == 0))

Is correct.  However this condition will never reach and if a number is divisible by both 3 and 5, 3 being in the first condition will win.

There are many ways to fix it but one way is to change the conditions like

First condition
if ((i % 3 == 0) && (i % 5 != 0))

And second like
if ((i % 3 != 0) && (i % 5 == 0))
0

LVL 31

Accepted Solution

farzanj earned 1332 total points
ID: 38769379
At present suppose i = 15

Then
i %3 ==0 is true
i % 5 == 0 is also true

But the first condition wins.

If you reverse the order of your conditions, put the third condition first, it should work too!
0

Author Closing Comment

ID: 38769430
Yes, moving the double condition to the top of the if-else tree did the trick. Thanks
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Often, when implementing a feature, you won't know how certain events should be handled at the point where they occur and you'd rather defer to the user of your function or class. For example, a XML parser will extract a tag from the source code, wh…
Introduction This article is the first in a series of articles about the C/C++ Visual Studio Express debugger.  It provides a quick start guide in using the debugger. Part 2 focuses on additional topics in breakpoints.  Lastly, Part 3 focuses on th…
The viewer will learn additional member functions of the vector class. Specifically, the capacity and swap member functions will be introduced.
The viewer will be introduced to the technique of using vectors in C++. The video will cover how to define a vector, store values in the vector and retrieve data from the values stored in the vector.
###### Suggested Courses
Course of the Month9 days, 8 hours left to enroll