-
自己做功課。
誰知道為什麼? Microsoft已經決定了,這是有原因的嗎?
-
首先看一下按鈕 1 事件:陣列 a() 被分配 a(0)=1 a(1)=2, a(2)=3, a(3)=4, a(4)=5
讓我們開始執行以陣列 a() 為引數的 proc() 程式: 注意,一開始宣告了乙個 i 變數,並在它前面加上了 static,因為這個靜態變數是在函式體中宣告的,所以這個 i 是乙個靜態區域性變數,靜態區域性變數具有以下特徵:
1)靜態區域性變數在函式中定義,但與自動變數不同的是,它們在被呼叫時存在,在退出函式時消失。靜態區域性變數始終存在,這意味著它具有整個源程式的生存期。
2)靜態區域性變數的生存期雖然是整個源程式,但其作用域仍然與自動變數相同,即只能在定義變數的函式中使用。退出函式後,即使該變數繼續存在,也無法使用該變數。
3)允許將初始值分配給建築類的靜態區域性數量。如果未分配初始值,系統將自動分配該值。 自動為數值變數分配初始值 0,為基於字元的變數分配空字元。
簡單來說,i 的值將永遠存在於函式 proc 中,它的值會隨著程式的進行而變化,並且這個值是遺傳的,不會在程式結束時被重新清算。
顯然,在您的程式中,靜態 i 作為整數定義了乙個靜態區域性變數 i,因為它沒有顯式初始化,所以初始值為 0
接下來,dox(i) = x(i)+x(i+1)。
i=i+1loop while i<2
這裡,x(0)=x(0)+x(1) x(0) 被賦值 3
然後 i+1=1 <2,所以我又做了一次迴圈:x(1)=x(1)+x(2) x(1)=5
此時,i=2 不執行迴圈,即第乙個 proc(a) 的結果是 3 5 3 4 5
注意:靜態區域性變數 i 的值為 2,並且將始終存在。
接下來,第二個 proc(a) 仍然是 do 迴圈程式,程式再次執行,因為 i = 2。
x(2)=x(2)+x(3) x(2)=7
i=i+1 i 是 3
程式(a)。
所以整個陣列現在是 a(0)=3, a(1)=5, a(2)=7, a(3)=4, a(4)=5 並且程式結束。
綜上所述,這個程式是靜態和做迴圈的知識,你可以掌握它。
當然,你可以再新增乙個 proc(a),你會發現結果是 3, 5, 7, 9, 5
-
proc 過程中的 i 是乙個初始值為 0 的靜態變數,該變數在執行的其餘部分和過程結束後保留,並且對下一次呼叫將繼續有效。
單擊命令按鈕時,陣列 a(0) a(4) 的值為:1 5
call 是呼叫過程的命令。
第一次呼叫後,a 陣列的值變為。
i 的值變為 2。
在第二次呼叫中,迴圈體執行一次,a(2) = a(2) + a(3),因此 a 陣列的值變為:
-
平分搜尋方法是一種更有效的搜尋方法。 假設有五個整數 a0 a4 按從小到大的順序排列,要找到的數字是 x,基本思想是: 設搜尋資料範圍的下限為 l=1,上限為 h=5,求中點 m=(l+h) 2, 將 x 與中點元素 am 進行比較,如果 x 等於 am,即找到它,停止搜尋;否則,如果 x 大於 am,則替換下限 l=m+1 並繼續在下半部分搜尋。 如果 x 小於 am,則將上限 h=m-1 更改為搜尋的上半部分。 重複上乙個過程,直到找到它或 l>h。
如果 l>h,則表示沒有這樣的數字,列印找不到資訊,程式結束。
此問題的解決方案:
第一輪:中間數是172,因為172<178,所以替換的下限是175 第二輪:中間數是177,因為177<178,所以替換的下限是177 第三輪:直接搜尋得到178=178,搜尋結束。
因此,答案是 C 引用。
-
當然,這是c,二分法,首先找到中間項172,178 172,只剩下三個數字178,177,175,然後找到中間項,177,178 177,然後只有乙個專案178,178=178,你就找到了。
你的**本身就不好,移動慢,除非是directX程式設計,否則其他情況下,請用定時器而不是直接使用迴圈,否則CPU使用率會很高。 >>>More