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

C語言的一題編程題

編輯:C語言問答

C語言的一題編程題

110

 #include<stdio.h>
void main()
{
 int i;
 int f[5]={1,1};
for(i=2;i<=5;i++)//這個是怎麼循環的
 f[i]=f[i-2]+f[i-1];//這是怎麼循環的

 for(i=0;i<=5;i++)//這個又是怎麼循環的
 {
  if(i%5==0)printf("\n");
  printf("%12d",f[i]);
 }


 printf("\n");
 }

為啥最後輸出1        1                  2            3           5

輸出 1    1 為啥第三個數是2求解

補充:輸出1 1理解為啥輸出第三個數是2

最佳回答:

for(i=2;i<=5;i++)
 f[i]=f[i-2]+f[i-1];
這個for循環4次:
1、i=2, f[2]=f[0]+f[1]=2,
2、i=3, f[3]=f[1]+f[2]=3,
3、i=4, f[4]=f[2]+f[3]=5,
4、i=5, f[5]=f[3]+f[4]=8.
這其實就是斐波那契數列。


 for(i=0;i<=5;i++)
 {
  if(i%5==0)printf("\n");
  printf("%12d",f[i]);
 }
這個for循環6次
首先if(i%5==0)printf("\n");判斷i的值,當i=5時,輸出一個換行符。
然後每次循環printf("%12d",f[i]);輸出相應的數組上的值,也就是數組從0到5的值都輸出了
所以結果當然就是
1 1 2 3 5
8
追問:
f[5]=f[3]+f[4]=8 3+4等於7呀為啥啥等於8哪
回答:
f[3]+f[4]不是3+4,而是f[]數組上的第4位加第5位。
前面已經推算出來了,f[3]=f[1]+f[2]=3, f[4]=f[2]+f[3]=5,
所以f[3]+f[4]=3+5=8。
注意這裡的f[]是你數組裡面的元素,[]裡的1、2、3這些只是指數而已,表示第幾位!還有數組是從第0位開始表示,也就是f[0]表示f數組中的第一位數,f[1]表示第二位。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved