上个星期我的“用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
答案 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”之类的变量。这是不好的编程,因为它会使您的代码难以阅读和理解。 * /