我想用 C 编写斐波那契数列程序,但我得到的最后一个元素为负数

I want to code fibonacci series program in C but I am getting the last element as negative

我不知道为什么最后一个数字是负数。

我希望输出为 0 1 1 ... 'n' 数字(斐波那契数列)

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int a=-1,b=1,c=0;
    for(int i=0;i<n;i++)
    {
        c=a+b;
        printf("%d",c);
        a=b;
        b=c;
    }
    return 0;
}

是的,肯定超出了整数范围

1836311903 //before last
-1323752223 //last

最大整数为 2,147,483,647

如果要n=48以上,必须声明a,b,c为long类型

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    long a=-1,b=1,c=0;
    for(int i=0;i<n;i++)
    {
      c=a+b;
      printf("%ld\n",c);
      a=b;
      b=c;
    }
    return 0;
}