为什么下面的结果sum的值会是负数,用了long int 也还是一样
#include<stdio.h>
int main()
{
int fbi(int n);
int sum = 0;
int n = 0;
scanf_s("%d", &n);
sum = fbi(n);
printf("sum=%d\n", sum);
return 0;
}
int fbi(int n)
{
int a = 1;
int b = 2;
int c = 0;
if (n == 1)
return c = 1;
if (n == 2)
return c = 2;
while (n > 2)
{
c = a + b;
a = b;
b = c;
n--;
}
return c;
}