Проблема в том, чтобы написать слово Фибоначчи.Например, если input равен 0, то f (0) = a, если 1, f (1) = b и аналогично f (2) = ba, f (3) = bab, f (4) = babba и так далее.Я написал следующий код, чтобы найти вывод на терминале Ubuntu 18.04 LTS.Я получаю правильный вывод для n = 0,1,2,3.Но для n = 4 я получаю babb вместо babba.Я также попытался отладки, но не смог найти, где код идет не так.Пожалуйста, помогите мне найти ошибку.
#include <stdio.h>
#include <string.h>
void fibonacci(int n);
int main()
{
int x;
printf("Enter the fibonacci nword number you want to see:(f(x), f(0) is the starting element.):\n");
scanf("%d",&x);
printf("Required Word is:\n");
fibonacci(x);
return 0;
}
void fibonacci(int n)
{
int i,j=0;
char *p,*q,*r;
if(n==0)
{
printf("a\n");
}
else if(n==1)
{
printf("b\n");
}
else
{
char str1[100] = "a";
char str2[100] = "b";
char str3[100];
p = str1;
q = str2;
r = str3;
for(i=0;i<n-1;i++)
{
*r = *q;
strcat(str2,str1);
*p = *r;
}
printf("%s\n",str2);
}
}