Если число делится на 3 без остатка, то на экран выводится слово 'Fizz' - C (СИ)
Формулировка задачи:
Занимаюсь на одном ресурсе (не буду заниматься пиаром, да и карается наверное это здесь). Учу язык Си + читаю основы математической логики , т.к я начинающий в этой теме и думаю мне это не помешает. Вопрос в следующем - был урок про функции if else, было рассказано как они функционируют. Мне даже показалось - что я понял. Мне выдали задание следующее :
Напишите функцию fizzbuzz, которая принимает в качестве параметра число limit типа int. В функции должен быть цикл, который проверяет цифры от 1 до limit, и:
если число делится на 3 без остатка, то на экран выводится слово 'Fizz'
если число делится на 5 без остатка, то на экран выводится слово 'Buzz'
если число делится и на 3, и на 5 без остатка, то на экран выводится слово 'FizzBuzz'
в противном случае на экран выводится само число
Пример вывода:
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz
Как я не делал, у меня не получалось. Посмотрел решение учителя и там был следующий код :
Расскажите пожалуйста , для чего в скобках стоит знак "!"? Что он здесь выполняет? Да и при возможности вообще объясните ход решения, как то я не додумался до этого...
void fizzbuzz(int limit) { int i; for (i=1; i<=limit; ++i) { if (!(i % 15)) printf("FizzBuzz"); else if (!(i % 3)) printf("Fizz"); else if (!(i % 5)) printf("Buzz"); else printf("%d", i); printf(" "); } }
Решение задачи: «Если число делится на 3 без остатка, то на экран выводится слово 'Fizz'»
textual
Листинг программы
void fizzbuzz(int limit) { int i; for (i=1; i<=limit; ++i) { //цикл от 1 до лимит if (!(i % 15)) //если i делится на 15 то вывести FizzBuzz printf("FizzBuzz"); else if (!(i % 3)) //иначе если i делится на 3 то вывести Fizz printf("Fizz"); else if (!(i % 5)) //иначе если i делится на 5 то вывести Buzz printf("Buzz"); else printf("%d", i); // иначе если число не делится на 15, 3 и 5 просто вывести это число printf(" "); } }
Объяснение кода листинга программы
- Объявлена функция fizzbuzz с параметром limit типа int
- Внутри функции объявлена переменная i типа int и инициализируется значением 1
- Задано условие цикла for от 1 до limit
- Внутри цикла проверяется условие i % 15 == 0. Если это условие выполняется, то выводится
FizzBuzz
- Если условие i % 15 != 0 выполняется, то проверяется условие i % 3 == 0. Если это условие выполняется, то выводится
Fizz
- Если условие i % 15 != 0 и i % 3 != 0 выполняется, то проверяется условие i % 5 == 0. Если это условие выполняется, то выводится
Buzz
- Если все условия не выполняются, то выводится значение i
- После вывода значения i выводится пробел
- Цикл продолжается до тех пор, пока значение i не станет больше limit
- В конце функции ничего не возвращается
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д