iT邦幫忙

0

費氏數列-C語言問題

  • 分享至 

  • xImage

https://ithelp.ithome.com.tw/upload/images/20200705/20128427zCz06eBBRb.png

請問第47項(白框處)為何是負的?
如何改善?

fillano iT邦超人 1 級 ‧ 2020-07-06 09:14:06 檢舉
把int改成long,可以撐久一點
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
海綿寶寶
iT邦大神 1 級 ‧ 2020-07-05 17:49:22
最佳解答

這樣改試試看
https://ithelp.ithome.com.tw/upload/images/20200705/200017875JdKXcSDiP.png

看更多先前的回應...收起先前的回應...

看不清楚啦.
https://ithelp.ithome.com.tw/upload/images/20200705/20050647Zai9NRpOi8.png

憤怒鳥 iT邦新手 5 級 ‧ 2020-07-05 20:22:13 檢舉

請問能不能把程式碼的部分弄清楚一點,感恩

需要呼叫蟹老闆來叫醒他XD

他是故意貼圖的啦.發問的人自己都隨便貼下圖,回答的就貼圖了,讓你感受一下看不清楚的麻煩.

/images/emoticon/emoticon39.gif
提問還是ctrl-atl-c把程式碼片段/全部
key進來或貼上來
回答的人才不會要再打一堆字

雖然貼圖的提問我都直接pass/images/emoticon/emoticon01.gif

海綿寶寶肯回答已經很給面子了

froce iT邦大師 1 級 ‧ 2020-07-06 08:18:51 檢舉

認真回答一下,有個名詞叫overflow樓主知不知道?
int的範圍麻煩查一下。

如果overflow搞不懂還想學程式,請先學python。

看了一下,發問者還是高中生.大家稍微寬容些.
這樣他就遇到overflow了,印象會深刻.
以我來看,有貼程式碼出來(雖然是貼圖),不懂就問,應該多些鼓勵.
比起一些只會問些很奇怪的,連個圖都不貼的,不知道在問什麼的,
還有發問像是全世界都應該要知道他的問題的,各種奇葩.這已經是很不錯了.
但我還是不忘提醒一下站方,那個版面設計好一點啦,提醒一下發問者吧.

但我還是不忘提醒一下站方,那個版面設計好一點啦,提醒一下發問者吧.

我已經在聊天室提過兩次這個issue
我已經不想再提了
/images/emoticon/emoticon10.gif

請問能不能把程式碼的部分弄清楚一點,感恩

可以
只要你先把程式碼貼上來
提示:就在你上傳圖片的左手邊兩格那個按鈕

憤怒鳥 iT邦新手 5 級 ‧ 2020-07-06 20:36:36 檢舉

1.程式碼
#include <stdio.h>
main()
{
unsigned long i;
unsigned long j;
unsigned long a[101];
a[0] = 0;
a[1] = 1;
printf("請輸入數字0~100\n");
scanf("%d", &i);
printf("+------+\n");

for(j = 2; j <= i; j++)
	a[j] = a[j - 1] + a[j - 2];
		 

	
for(j = 0; j <= i; j++)
	printf("%d\n", a[j]);

}

2.結果
https://ithelp.ithome.com.tw/upload/images/20200706/20128427o2k3GDjSRJ.png
3.問題敘述
因為unsigned long 的數值範圍較大,所以改用unsigned long;
但是仍然呈現一開始的結果(弟47項仍是負數).

雖然你沒有看這段
提示:就在你上傳圖片的左手邊兩格那個按鈕
畢竟還是把程式碼貼上來了
以下提供參考

#include <stdio.h>

int main()
{
    int i;
    int j;
    float a[101];
    a[0] = 0;
    a[1] = 1;
    printf("請輸入數字0~100\n");
    scanf("%d", &i);
    printf("+------+\n");

    for(j = 2; j <= i; j++)
    	a[j] = a[j - 1] + a[j - 2];
		 
    for(j = 0; j <= i; j++)
	    printf("%.0f\n", a[j]);

    return 0;
}
憤怒鳥 iT邦新手 5 級 ‧ 2020-07-06 22:14:52 檢舉

好,謝謝你

我要發表回答

立即登入回答