打印一个数字列表,用单词3,5和3和5 C的单词替换数字

时间:2013-10-24 04:56:23

标签: c fizzbuzz

上个星期我的“用C编程”中期,最后一个问题是编写了一个程序来打印1到100的数字列表,但每3个打印嘶嘶声,5个嗡嗡声的多个,3个的倍数和5打印fizzbuzz。刚得到我的成绩我得到了76%,我确信我还有其他问题,所以我的代码中一定有错误。我试图解决它(不记得我在纸上写的东西)我的问题是我基本上有它工作,但它也打印数字,数字应该被替换为单词。这是我到目前为止的代码。

#include <stdio.h>

int main (void)
{
        int x,y;
        printf("this should count from 1 to 100, and instead of printing the multiples of 3 or 5 or 3 and 5 it should print words\n");
        for (x=1; x<=100; x++)
        {
                if (x%3==0)
                {
                    printf("fizz\n");
                }
                if (x%5==0)
                {
                    printf("buzz\n");
                }
                if (x%3==0 && x%5==0)
                {
                    printf("FizzBuzz\n");
                }
        printf("%d\n",x);
        }
return 0;
}

我实际上并没有“重新接受”测试或类似的事情所以我不是想作弊,我只是对我需要在这里做什么感到困惑。我得到的输出是

1
2
fizz
3
4
buzz
5
fizz
6
7
8
fizz
9
buzz
10
11
fizz
12
13
14
fizz
buzz
FizzBuzz
15
16

它应该是这样的:

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz

7 个答案:

答案 0 :(得分:8)

您的条件错误。他们应该是:

if (x%3==0 && x%5==0)
{
    printf("FizzBuzz\n");
}
else if (x%3==0)
{
    printf("fizz\n");
}
else if (x%5==0)
{
    printf("buzz\n");
}
else
{
    printf("%d\n",x);
}

请记住,如果两者都可以被3 5 整除,那么它是FizzBuzz ,如果数字可以被3整除,则为Fizz,{ {1}}如果数字可以被5整除。

答案 1 :(得分:1)

 for (x=1; x<=100; x++)
    {
            if (x%3==0 && x%5==0)
            {
            printf("fizzbuzz\n");
            }
            else if (x%5==0)
            {
             printf("buzz\n");
             }
             else if (x%3==0)
             {
              printf("Fizz\n");
              }
              else {
              printf("%d\n",x);
              }
    }

答案 2 :(得分:1)

你非常接近,所以我会试着给你一点点提示。似乎方向只希望您在每次循环迭代中执行一次printf。为了实现这一目标,您可以在if语句中添加哪些关键字?您还希望在printf("%d\n",x);之前添加某种关键字,以防止它每次都执行。

另外,请为每个if块使用相同的缩进。

答案 3 :(得分:1)

            if (x%3==0 && x%5==0)
            {
                 printf("FizzBuzz\n");
            }
            else if (x%3==0)
            {
            printf("fizz\n");
            }
            else if (x%5==0)
            {
                 printf("buzz\n");
            }
            else
                 printf("%d\n",x);

这将给出正确的输出,因为在你的情况下,在某些情况下可以实现许多条件,在我的15,5和3的值上运行,你的代码都可以理解

答案 4 :(得分:1)

#include <stdio.h>
int main()
{
int x;

for ( x = 1; x <= 100; x++ )
{
   if (x%3==0)
   {
      printf("fizz");
   }
   if (x%5==0)
   {
      printf("buzz");
   }
   if(x%3 && x%5)
   {
      printf("%d",x);
   }
   printf("\n");           
}
}

会给你你想要的东西。请注意,“fizzbuzz”输出是使用前两个if条件构建的。

答案 5 :(得分:0)

尝试一下:

#include <stdio.h>

int main (void)
{
    int x,y;
    printf("this should count from 1 to 100, and instead of printing the multiples of 3 or 5 or 3 and 5 it should print words\n");
    for (x=1; x<=100; x++)
    {
          if (x%3==0 && x%5==0)
            {
                printf("FizzBuzz\n");
            }
           else  if (x%3==0)
            {
                printf("fizz\n");
            }
           else if (x%5==0)
            {
                printf("buzz\n");
            }
       else      
    printf("%d\n",x);
    }
  }

答案 6 :(得分:-1)

#include <stdio.h>

int main ( void ) {

// Initialize variable to count from 1 - 100.
  int counter;

/* Create a for loop to count from from 1 to no more than 100 and count by an iteration no more than #1. */
   for(counter = 1; counter <= 100; counter++)
   {

    if (!(counter % 3) && (!(counter % 5)))
            {
               printf("fizzBuzz\n");
            }

           else  if (!(counter % 7 ))
            {
               printf("Fizz\n");
            }
            else  if (!(counter % 5 ))
            {
               printf("Buzz\n");
            }

            /* By placing "printf("%d\n", counter);" in curly brackets "{ }" within the else statement you are able to override the numbers in the previous statements with the desired text you wish to input.*/
            else
            {
               printf("%d\n", counter);
            }
   }

return (0);
}

/ * p.s.为了上帝的爱,请不要使用“ i”或“ j”之类的变量。这是不好的编程,因为它会使您的代码难以阅读和理解。 * /