fizzbuzz.c 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. /* Assignment name : fizzbuzz
  2. Expected files : fizzbuzz.c
  3. Allowed functions: write
  4. --------------------------------------------------------------------------------
  5. Напишите программу, которая печатает числа от 1 до 100, разделенные символом новой строки.
  6. Если число кратно 3, вместо этого печатается «fizz».
  7. Если число кратно 5, вместо этого выводится «жужжание».
  8. Если число одновременно кратно 3 и кратно 5, вместо этого выводится «fizzbuzz».
  9. Пример:
  10. $>./fizzbuzz
  11. 1
  12. 2
  13. fizz
  14. 4
  15. buzz
  16. fizz
  17. 7
  18. 8
  19. fizz
  20. buzz
  21. 11
  22. fizz
  23. 13
  24. 14
  25. fizzbuzz
  26. [...]
  27. 97
  28. 98
  29. fizz
  30. buzz
  31. $> */
  32. #include <unistd.h>
  33. void ft_makechar(int a)
  34. {
  35. char b;
  36. if (a <= 9)
  37. {
  38. b = a + '0';
  39. write(1, &b, 1);
  40. write(1, "\n", 1);
  41. }
  42. else if (a >= 10 && a < 100)
  43. {
  44. b = a / 10 + '0';
  45. write(1, &b, 1);
  46. b = a % 10 + '0';
  47. write(1, &b, 1);
  48. write(1, "\n", 1);
  49. }
  50. }
  51. int main(void)
  52. {
  53. int i;
  54. i = 0;
  55. while (i <= 100)
  56. {
  57. if (i % 3 == 0 && i % 5 == 0)
  58. write(1, "fizzbuzz\n", 9);
  59. else if (i % 3 == 0)
  60. write(1, "fizz\n", 5);
  61. else if (i % 5 == 0)
  62. write(1, "buzz\n", 5);
  63. else
  64. ft_makechar(i);
  65. i++;
  66. }
  67. }