VB程式設計陣列問題,VB程式設計陣列遇到問題,剛開始學vb跪求大神幫忙解惑

2022-08-27 01:10:36 字數 4183 閱讀 6470

1樓:夏天的小紅花

開啟vb後,在窗體中設定兩個標籤,三個文字框和一個按鈕,如圖所示。其餘的都在**中:

dim a(20) as integer, x as integer

private sub command1_click()

x = text2

p = binfind(a, 15, x)

if p <> -1 then

text3 = x & "為陣列的第" & p & "個元素"

else

text3 = "陣列中沒有值為" & x & "的元素"

end if

end sub

private sub form_load()

me.caption = "查詢資料"

label1.caption = "待查資料"

label2.caption = "查詢結果"

command1.caption = "查詢"

a(1) = 100

text1 = "100 "

for i = 2 to 15

a(i) = a(i - 1) - int(rnd * 10) - 1

text1 = text1 & a(i) & " "

next i

text2 = ""

text3 = ""

end sub

function binfind(a() as integer, n as integer, x as integer)

i = 1: j = n

m = (i + j) \ 2

while i <= j and a(m) <> x

if a(m) > x then i = m + 1 else j = m - 1

m = (i + j) \ 2

wend

binfind = iif(a(m) = x, m, -1)

end function

運**況如下圖:

2樓:蠻牛無悔

呃呃呃,,,

這個很難嗎?

vb程式設計陣列遇到問題,剛開始學vb跪求大神幫忙解惑

3樓:匿名使用者

沒看太明白,因為你中間還有計算,但你不能這樣寫,只要有出現小於0的數,就統一加你應該寫成這樣,另外建議除了前面的dim jubumozu2(205)之外,後面的205建議用ubound(jubumozu2)來代替

flag=false

for i = 0 to 205

sum2 = sum2 + mozu2(i) + jubumozu2(i) + gaochengcha2(i)

zshengyuyangcheng2(i) = zshengyuyangcheng(106) - 15 - sum2 '計算剩餘壓力

if zshengyuyangcheng2(i) < 0 then flag=true '標記

next i

if flag=true then  '出現過小於0的數

for i = 0 to 205

zshengyuyangcheng2(i)=zshengyuyangcheng2(i)+225

next i

end if

'或者也可以寫成類似這樣

flag=0

pos=0

for i = 0 to 205

sum2 = sum2 + mozu2(i) + jubumozu2(i) + gaochengcha2(i)

zshengyuyangcheng2(i) =flag+ zshengyuyangcheng(106) - 15 - sum2 '計算剩餘壓力

if flag=0 and zshengyuyangcheng2(i) < 0 then

flag=225 '標記

pos=i

end if

next i

if flag>0 then  '出現過小於0的數

for i = 0 to pos '給出現位置之前的資料累加

zshengyuyangcheng2(i)=zshengyuyangcheng2(i)+flag

next i

end if

vb陣列問題

4樓:生死魔

你的**錯誤的地方挺多的.

第一個a這個陣列在vb裡面預設是從0開始的.也就是說你這裡的

for j = 1 to 26這個就錯了.應該是for j = 0 to 25

另外一個你的m沒有清空.如果不清空m的話在下次遇到字母的同時會繼續累加.

第三text2的賦值也有問題你這樣寫是覆蓋寫入.**改成

private sub command1_click()

dim n%, z$, m%

a = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z")

n = len(text1.text)

for j = 0 to 25

for i = 1 to n

z = mid(text1.text, i, 1)

if a(j) = z then m = m + 1

next i

text2.text = text2.text & a(j) & "=" & m & "  "

m = 0

next j

end sub

這樣就沒問題了.我測試了下.效果可以

text2的multiline要設定成true

不過你的**裡並沒有忽略大小寫.大寫被排除了.所以上圖的t=1其實有兩個t一個大寫一個小寫

如果你要連大寫一起統計的話需要改一下

private sub command1_click()

dim n%, z$, m%

a = array("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z")

n = len(text1.text)

for j = 0 to 25

for i = 1 to n

z = mid(text1.text, i, 1)

if ucase(a(j)) = ucase(z) then m = m + 1

next i

text2.text = text2.text & a(j) & "=" & m & "  "

m = 0

next j

end sub

這樣大寫也會被統計進去

ucase的作用就是全部轉成大寫在進行比較.

5樓:

text2.text = text2.text + vbtab + a(j) & "=" & m

還有m每次需要賦0.

vb程式設計題,定義一下有20個元素的一維陣列,使用inputbox函式為陣列中的所有元素賦值,並顯示

vb程式設計實現一維陣列a(10)中陣列元素迴圈向右移動一個位置

6樓:匿名使用者

for i=10 to 0 step -1if i>0 then

if i=10 then temp=a(10)a(i)=a(i)-1

else

if i=0 then a(0)=tempendif

next

陣列元素迴圈向右移動一個位置,最後一個位置,移動到最前面(左)

7樓:匿名使用者

private sub command1_click()dim i%, t%

dim a(10) as integer

for i = 1 to 10

a(i) = rnd * 100

next

t = a(10)

for i = 10 to 2 step -1a(i) = a(i - 1)

next

a(1) = t

end sub

vb程式設計定義包含元素的陣列a,為其陣列元素分別賦值為 20,並將其輸出

private sub command1 click dim a 10 as integer for i 1 to 10 a i 2 i print a i next i end sub vb程式設計宣告一個有10個元素的一維陣列a使用inputbox函式為所有元素賦值,將其最小元素的值及下標顯示出...

VB程式設計問題,VB程式設計中的迴圈問題

有個 自己去看吧,都是考試的。編一個求圓周長的程式。輸入半徑,得到周長和麵積。試試看。建議你不要光學vb,畢竟它有太多缺點,很多事做不了 如果是對basic語言感興趣的話,到不如去學哈freebasic,powerbasic,purebasic,它們都功能超級強大 freebasic甚至可以寫作業系...

vb程式設計問題

private sub command1 click dim i,j as integer,s as double,n as double for i 1 to 100 n 1 for j 1 to i n n j next j s s n next i print 1 2 100 send sub...