上周有我的“用 C 编程”的期中考试,最后一个问题是编写一个程序来打印从 1 到 100 的数字列表,但每 3 的倍数打印 fizz,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