在上周的"用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;
}
Run Code Online (Sandbox Code Playgroud)
我实际上并没有"重新接受"测试或类似的事情所以我不是在试图作弊,我只是对这里需要做的事感到困惑.我得到的输出是
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
Run Code Online (Sandbox Code Playgroud)
它应该是这样的:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
16
17
Fizz
Run Code Online (Sandbox Code Playgroud)
你的条件错了.他们应该是:
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);
}
Run Code Online (Sandbox Code Playgroud)
请记住,FizzBuzz 如果两者都可以被3 和 5 整除,并且Fizz数字可以被3整除,并且Buzz数字可以被5整除.