ошибки в fizzbuzz в C с использованием подхода String? - PullRequest
0 голосов
/ 23 сентября 2018

Итак, я пытался решить проблему 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=="\0")
            strcat(output,i);

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

Спасибо.

1 Ответ

0 голосов
/ 23 сентября 2018

@ Ashwini Singh

В вашем коде есть некоторые ошибки,

1) Вы объявили переменную output как тип данных char и объединенную строку в Fizz/Buzz в char.так как может быть значение строки (которая является массивом символов), помещенной в символ 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, '\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 
...