使用字符串方法在 C 中的 fizzbuzz 中出错?
errors in fizzbuzz in C using String approach?
所以我尝试使用字符串方法来改进代码来解决各种语言的 FizzBuzz 挑战。我被困在 C 中,因为这里的工作方式不同。
这是我的代码,我遇到了错误,任何人都可以向我解释并帮助获得正确的代码。
#include<stdio.h>
#include<string.h>
int main()
{
int i,n;
char output;
printf("Enter Range: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i%3==0)
strcat(output,"Fizz");
if(i%5==0)
strcat(output,"Buzz");
if(output=="[=10=]")
strcat(output,i);
printf("\ni");
}
printf("\nEnd.\n");
return 0;
}
谢谢。
@Ashwini 辛格
你的代码有一些错误,
1) 您将 output
变量声明为 char 数据类型并在 char 的 Fizz/Buzz
中连接字符串。那么如何将字符串(这是一个字符数组)的值放在字符 output
.
中
2) 您将整数值 i
与字符 output
连接起来,例如 strcat(output,i)
。我们需要首先将整数值 i
类型转换为 char/string 数据类型,然后与 output
.
连接
FizzBuzz 程序的条件是,
1) 如果数字是 3 的倍数,则在结果字符串中添加 Fizz
2) 如果数字是 5 的倍数,则在结果字符串中添加 Buzz
3) 如果数字既不是 3 的倍数也不是 5 的倍数则在结果字符串中添加数字
代码:
#include<stdio.h>
#include<string.h>
int main()
{
int i,n;
char output[100]=" ";
printf("Enter Range: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
char s[] = {'0' + i, '[=10=]'};
if(i%3==0)
strcat(output,"Fizz ");
else if(i%5==0)
strcat(output,"Buzz ");
else
strcat(strcat(output,s)," ");
}
puts(output);
return 0;
}
输出:
Enter Range: 10
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz
所以我尝试使用字符串方法来改进代码来解决各种语言的 FizzBuzz 挑战。我被困在 C 中,因为这里的工作方式不同。 这是我的代码,我遇到了错误,任何人都可以向我解释并帮助获得正确的代码。
#include<stdio.h>
#include<string.h>
int main()
{
int i,n;
char output;
printf("Enter Range: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i%3==0)
strcat(output,"Fizz");
if(i%5==0)
strcat(output,"Buzz");
if(output=="[=10=]")
strcat(output,i);
printf("\ni");
}
printf("\nEnd.\n");
return 0;
}
谢谢。
@Ashwini 辛格
你的代码有一些错误,
1) 您将 output
变量声明为 char 数据类型并在 char 的 Fizz/Buzz
中连接字符串。那么如何将字符串(这是一个字符数组)的值放在字符 output
.
2) 您将整数值 i
与字符 output
连接起来,例如 strcat(output,i)
。我们需要首先将整数值 i
类型转换为 char/string 数据类型,然后与 output
.
FizzBuzz 程序的条件是,
1) 如果数字是 3 的倍数,则在结果字符串中添加 Fizz
2) 如果数字是 5 的倍数,则在结果字符串中添加 Buzz
3) 如果数字既不是 3 的倍数也不是 5 的倍数则在结果字符串中添加数字
代码:
#include<stdio.h>
#include<string.h>
int main()
{
int i,n;
char output[100]=" ";
printf("Enter Range: ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
char s[] = {'0' + i, '[=10=]'};
if(i%3==0)
strcat(output,"Fizz ");
else if(i%5==0)
strcat(output,"Buzz ");
else
strcat(strcat(output,s)," ");
}
puts(output);
return 0;
}
输出:
Enter Range: 10
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz