程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> c語言-C語言問題求解答,幫忙看一下這個編程~~~~

c語言-C語言問題求解答,幫忙看一下這個編程~~~~

編輯:編程解疑
C語言問題求解答,幫忙看一下這個編程~~~~

輸出[m,n]范圍內的所有斐波那契(Fibonacci)數,m,n這兩個數由鍵盤輸入。
【提示】
1,1,2,3,5,8,13,21,34,……這是斐波那契(Fibonacci)數列的前幾項。斐波那契數列的特點:前兩項均為1,後面任意一項都是其前面兩項之和。
本實驗雖然只要求輸出在[m,n]范圍內的斐波那契數,但是依然需要從第1個Fibonacci數開始依次得到下一個,並判斷是否是需要輸出的那個。
#include
int main()
{
int f[100];
int m, n, i;
f[0] = 1; f[1] = 1;
for (i = 2; i < 100; i++)
{
f[i] = f[i - 1] + f[i - 2];
}
scanf("%d%d", &m, &n);
for (i = 0; f[i] < m; i++);
for (; f[i]<n; i++)
printf("%d ",f[i]);

return 0;
}
兩個疑問
第一個疑問: 你看這個程序 ,我輸入 1 3 ,也就是m是1,n是3,運行第二個for時,f[0]<m 不成立 那麼程序會怎麼樣走呢,整個程序也就一個printf 但也要第三個for成立時候才能執行,那要是之前不成立呢,程序怎麼運行?
第二個疑問
我輸入 1 3 輸出 1 1 2,怎麼改能讓他輸出 1 1 2 3或者 1 2 3 呢?

最佳回答:


第一個問題,在for循環裡,首先給i賦值為0,然後判斷f[0]和m的大小關系,發現f[0]<m 不成立,於是跳出for循環,順序執行後面的代碼
第二個問題,最後一個for循環改成這樣:

 for (; f[i]<=n; i++)
        printf("%d ",f[i]);
qq_36519547
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved