Error in program to detect if two given numbers are consecutive fibonacci numbers

I have written this program to detect whether two numbers are consecutive terms of the fibonacci series. The code that I have written below gives me wrong answer when I enter 21 and 34 and 55 and 89 (gives right answer for other entries). Below is the fibonacci series representation:

1 1 2 3 5 8 13 21 34 55 89...

A fibonacci series is made up of consecutively adding two previous terms. Below is my code;

Code:

`#include<stdio.h>`

int main()

{

int d,e,a,b,i;

printf("enter the numbers >1 to be checked");

scanf("%d%d",&d,&e);

while(a!=1 && (b!=1||0))

{

a=e-d;

b=d-a;

e=a;

d=b;

}

if(a==1 && (b==1||0))

{

printf("the given numbers were fibonacci series numbers");

}

else

{

printf("the given numbers were not fibonacci numbers");

}

system("pause");

return 0;

}

Thank you for your help.