1樓:莘振梅果琴
這裡沒有重定義,第一個for裡是先給i賦初值2然後進行迴圈,到第二個for的時候i的值又被重新賦了初值為1,這裡的i已經與之前的i值沒有關係了.所以不是重定義;你應該先去看下重定義的概念是什麼,要不你還是會弄不明白的(重定義:是指之前已經定義了一個變數,然後在這個變數的作用域內,又定義了一次同名變數,這樣才算是重定義,比如:
inti;
intmain())
2樓:
printf("%10d",fibi-1);
應為:printf("%10d",fib[i-1]);
fib[i]=fib[i-1]+fib[i-2]求的不是i的值,而是fib[i]的值,也就是說fib[i]的值是它前面兩個陣列元素值之和。
陣列fib中的最終值為:
1 1 2 3 5 8 13 21 34 55 89 ……陣列fib[i]和i它們的變數名不相同,
fib是一個整型陣列,i是一個整型變數。
3樓:甘望亭鬆璧
#include
"stdio.h"
main();//
定義一個20個元素的整形陣列,並初始化前2個元素為1printf("\n");
for(i=2;i<20;i++)
fib[i]
=fib[i-1]+fib[i-2];
//從第三個元素開始,每個元素是前2個元素的和,這裡的i是前面定義的int
ifor(i=1;i<=20;i++)
}這裡面沒有重定義啊
4樓:藍色草原
c語言區分大小寫的,fib和fib是不同的變數名。
這個程式的意思就是將20個數,從第3個數開始等於前2位數之和,輸出的時候將1-20這些數減1再輸出。
另外你的程式有點問題。
#include "stdio.h" //最好寫成#include ,""預設首先查詢使用者定義的標頭檔案
main()
; printf("\n");
for(i=2;i<20;i++)
fib[i]=fib[i-1]+fib[i-2];
for(i=1;i<=20;i++) }
5樓:上帝聖座
#include "stdio.h"
main()
; /*定義:變數"i",陣列fib[20],元素fib[0]和fib[1]*/
printf("\n");
for(i=2;i<20;i++)
fib[i]=fib[i-1]+fib[i-2]; /*前兩個元素相加,並賦值給下一元素,共進行18迴圈*/
for(i=1;i<=20;i++) }
6樓:裝著很懂
fib[i]=fib[i-1]+fib[i-2]
求的是fib[i] 的值; i只是陣列fib的下標
表示陣列fib的第i個數 (從0開始)
請教一個c語言結構體陣列的問題
7樓:匿名使用者
stu1[0] = ;
這一句錯誤,陣列是不能這麼初始化的。
即使是整數陣列,其初始化方式也應該是
int a[4] = ; // 正確,初始化必須和定義同時進行,定義後就不能再用下標方式初始化了
int a[4];
a[4] = ; // 錯誤,系統認為是對陣列的第四個下標賦值,所以不允許將陣列賦值給整型。
你的是結構體陣列,所以情況還要複雜一些。
請教一條c語言陣列的問題
8樓:波波羅克羅伊斯
m是為了找到陣列中間的位置,pm=x+m也是這個意思,加上x是因為可能你需要重新排序的是陣列第x個數字起。
pr指向x[0],pl指向最後一個元素,先調換;然後pr指向x[1],pl指向倒數第二個元素;類推
請教c語言中的問題,請教一個c語言中的問題?
不對int n n 意思是定義了一個指標變數n指向int型 n 等價於 n 就是先取n指向變數的值 然後讓n 1 n也就是讓n指向下一地址 而且這樣用必須先給n賦一個安全的地址才行 對啊,你用 幹什麼,有不是指標.就是 號自增 資深癩 int n n 或者int n n 以上都行 兩個的區別是 n ...
C語言小題,請教,C語言2個小題,請教
第一題 由於每條case語句後面都沒有加break語句跳出迴圈,因此執行完相應的語句後不會跳出迴圈而是繼續執行下面的語句。所以,執行的結果是 i 1,a 3 5 i 2,a 8 3 5 i 3,a 16 2 3 5 i 4,a 26 5 31.第二題 char k 100 是說k 0 0 所以實際為...
初學C請教簡單的問題,初學C ,請教一個簡單的問題
include using namespace std int main return 0 如上,養成用在mian 函式前加using namespace std 你就不用沒個輸入輸出都得加std了,方便些。而且你的while語句的條件表達也有些問題,因為判斷while函式條件的是bool語句,你這...