gpt4 book ai didi

c - 使用字符串方法在 C 中的 fizzbuzz 中出现错误?

转载 作者:行者123 更新时间:2023-11-30 21:05:50 31 4
gpt4 key购买 nike

所以我尝试使用字符串方法来改进代码来解决各种语言中的 FizzBu​​zz 挑战。我被困在 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=="\0")
strcat(output,i);

printf("\ni");
}
printf("\nEnd.\n");
return 0;
}

谢谢。

最佳答案

@阿什维尼·辛格

您的代码中有一些错误,

1) 您将 output 变量声明为 char 数据类型,并在 char 中的 Fizz/Buzz 中连接字符串。那么如何将字符串(它是一个字符数组)的值放置在字符输出中。

2) 您将整数值 i 与字符 output 连接起来,例如 strcat(output,i) 。我们需要首先将整数值 i 转换为 char/string 数据类型,然后与 output 连接。

FizzBu​​zz 程序的状况是,

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, '\0'};
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

关于c - 使用字符串方法在 C 中的 fizzbuzz 中出现错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52463704/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com