# Fizz Buzz Program in C

Programming interviews frequently include the straightforward "Fizz Buzz" coding exercise to evaluate candidates' fundamental comprehension of loops, conditionals, and problem-solving abilities. The program follows a set of rules and generates various strings depending on specified circumstances.

The Fizz Buzz program's objective is to repeatedly loop through a list of integers and apply a set of rules to decide what to output for each number. These are the guidelines:

• Whenever a number is divisible by 3, "Fizz" is output in its place.
• Whenever a number is divisible by 5, "Buzz" is output in its place.
• Whenever a number is divisible by 3 and 5, "FizzBuzz" should be displayed in place of the actual number.
• If the number does not meet any of the above conditions, simply output the number itself.

### Code implementation for this fiz buzz program:

Output:

```1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 Fizz 49 Buzz Fizz 52 53 Fizz Buzz 56 Fizz 58 59 FizzBuzz 61 62 Fizz 64 Buzz Fizz 67 68 Fizz Buzz 71 Fizz 73 74 FizzBuzz 76 77 Fizz 79 Buzz Fizz 82 83 Fizz Buzz 86 Fizz 88 89 FizzBuzz 91 92 Fizz 94 Buzz Fizz 97 98 Fizz Buzz
```

Explanation:

Printing integers between 1 and 100, the program will substitute "Fizz" for numbers that are divisible by 3, "Buzz" for numbers that are divisible by 5, and "FizzBuzz" for numbers that are divisible by both 3 and 5.

A "for" loop repeatedly iterates through the numbers from 1 to 100 in the provided C code. Until it reaches 100, the loop variable x starts at 1 and increases by 1 with each iteration. Inside the loop, the if statements check the conditions in a specific order:

• The first if statement checks if x is divisible by 3 and 5 using the modulo operator (%). When x is divided by a number, the modulo operator determines the remainder. If the remainder is 0, it means that x is divisible by that number. If x is divisible by 3 and 5, it prints "FizzBuzz".
• The second else if statement checks if x is only divisible by 3. If the remainder after dividing x by three is zero, x is divisible by three, and "Fizz" is printed.
• The third else if statement checks if x is only divisible by 5. If x is divisible by 5 and has a remainder of 0, the word "Buzz" is printed.
• If none of the above conditions is true, the else statement executes and prints the value of x itself using printf.

Some other detailed information:

1. Origins: The exact origins of the Fizz Buzz game and its application in coding interviews are not well-documented. However, it is thought to have started as a kid's game that was used to teach division and mathematics. Its adaptation as a coding exercise likely emerged as a way to assess candidates' ability to apply basic programming concepts in a practical scenario.
2. Common Interview Question: Fizz Buzz has become a classic interview question, particularly in software engineering and programming roles. Its simplicity allows interviewers to quickly gauge a candidate's coding skills, problem-solving approach, and ability to write clean and efficient code. Candidates who have difficulty with Fizz Buzz frequently have a weak knowledge of basic programming ideas.
3. Multiple Variations: While the basic Fizz Buzz program follows the rules mentioned earlier, variations of the game involve different conditions and outputs. For example, some variations may introduce additional words or change the numbers that trigger specific outputs. These variations can make the program more challenging and require candidates to think creatively and adapt their solutions.
4. Extended Range: The typical Fizz Buzz program iterates over the numbers from 1 to 100. However, this range can be easily adjusted to accommodate larger or smaller sequences. Some variations of the program may even accept user input to determine the range dynamically.
5. Efficiency Considerations: Although Fizz Buzz is a relatively simple program, there is still room for optimizing its implementation. For instance, user can combine the criteria and utilize a single modulo operation by 15 (3 * 5) instead of executing separate modulo operations for divisibility by 3 and 5. These types of adjustments can increase the program's performance.
6. Fizz Buzz in Real-World Applications: Although Fizz Buzz itself is a simple exercise, it showcases the importance of considering multiple conditions and applying rules systematically. This approach is relevant to various real-world scenarios, such as data validation, filtering, and rule-based systems.