2017-03-19 1 views
0

なぜ最後の数字が負であるのかわからない。私はフィボナッチシリーズのプログラムをC言語でコーディングしたいが、最後の要素は負の値にしている。

は私が

#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; 
} 
+1

あなたが入力したものは何ですか、おそらく結果が既に結び付いていません –

+0

私のn値は48です。エラーメッセージは表示されません。しかし、私の出力最後の要素だけが負である –

答えて

2

はい、それは

1836311903 //before last 
-1323752223 //last 

最大int型の範囲外の間違いである0 1 1 ... 'n' は数字(フィボナッチ数列)として出力を取得したいですint型は、あなたがより多くのn = 48にしたい場合は、あなたがいる限りタイプ

#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; 
} 
C、A、Bを宣言しなければなりません2147483647

です

関連する問題