用VB语言:给数组输入N个数,按从大到小排序输出各数,并求出最大和最小值。
dim a(),cont as integer,i as integer,max1 as string ,min1 as stringcont = val(inputbox("n=")if cont>=1 thenredim a(cont-1)for i=0 to cont-1 a(i)=val(inputbox("请输入第" & i & "个数")) if max1="" then max1=a(i) if min1="" then min1=a(i) if max1"" then max1=iif(val(max1)"" then min1=iif(val(min1)>a(i),a(i),min1) nextend if print "max:" & max1 '最大print "min:" & min1'最小'所有的数据存在数组 a() 里面
思路:将数组中第一个元素的值与其后的所有元素的值进行比较,如果前者大于后者就互换,这样将所有元素中最小值就放在第一一个元素中。依次类推,直到最后一个元素为止。那么具体代码显示如下:
#include
#define n 5 /*对5个数按升序排列
main(){
int a[n],i,j, t;
printf(" input 5 number
");
for(i=0;i<n- 1;i++)
for(j=i+1;j<n;j++)
if(a[i]>a[j]) {
t=a[j];
a[j]=a[i];
a[i]=t;
}
具体运行结果如下:
扩展资料:
简单选择排序的基本思想:
第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕。
以下为简单选择排序的存储状态,其中大括号内为无序区,大括号外为有序序列:
初始序列:{49 27 65 97 76 12 38}
第1趟:12与49交换:12{27 65 97 76 49 38}第2趟:27不动 :12 27{65 97 76 49 38}第3趟:65与38交换:12 27 38{97 76 49 65}第4趟:97与49交换:12 27 38 49{76 97 65}第5趟:76与65交换:12 27 38 49 65{97 76}第6趟:97与76交换:12 27 38 49 65 76 97 完成
Private Sub Command1_Click()
Dim i As Integer, j As Integer, n, temp, item
Dim arr1() As Single
Dim max As Single, min As Single
Do
n = InputBox("请输入第" & i + 1 & "个数值(输入空值则表示结束):")
If n = "" Then Exit Do
ReDim Preserve arr1(i)
arr1(i) = n
Print arr1(i);
i = i + 1
Loop
If i = 0 Then Exit Sub
max = arr1(0): min = arr1(0)
For i = LBound(arr1) To UBound(arr1)
For j = i To UBound(arr1)
If arr1(i) <= arr1(j) Then
temp = arr1(i): arr1(i) = arr1(j): arr1(j) = temp
End If
Next
Next
For Each item In arr1
If max < item Then max = item
If min > item Then min = item
Print item;
Next
Print "最大值"; max, "最小值"; min
End Sub
Private Sub Command5_Click()
Dim n As Integer
Dim MyData(), MyTemp
n = 1
Do
n = n + 1
MyTemp = InputBox("请输入第" & n & "个数据")
If MyTemp = "" Then Exit Do
ReDim Preserve MyData(n)
MyData(n) = MyTemp
Loop
Dim K As Long, j As Long, X As Long
For K = 1 To n - 1
For j = K To n - 1
If Val(MyData(j)) < Val(MyData(K)) Then
X = MyData(j): MyData(j) = MyData(K): MyData(K) = X
End If
Next j
Next K
For I = 2 To n - 1
Text1.Text = Text1.Text & "第" & CStr(I - 1) & "数:" & CStr(MyData(I)) & "" & Chr(13) & Chr(10) & ""
Next
Text1.Text = Text1.Text & "最小值:" & CStr(MyData(2)) & "" & Chr(13) & Chr(10) & ""
Text1.Text = Text1.Text & "最大值:" & CStr(MyData(n - 1)) & ""
End Sub
你百度查下冒泡法吧,那个比较好用·
别啊,怎么全是冒泡排序,用快速排序法啊,这个最快
vb 用数组输入五个整数,找出最大数
'任意长度数组获取最大值Private Function getMax() Dim arr() As Long Dim max As Long arr = getArr 'getArr可以是任意获取数组的方法 max = arr(0) For i = 1 To UBound(arr) If arr(i) > max Then max = arr(i) End If Next iEnd Function这个方法...
vb数组的操作
1、 Line Input #1, rad(i)2、 数组中储存的是整个一行的字符串。3、 要用函数对数组处理来得到3251这个数,如果3251位数固定就很好做了用left函数就可以提取了,不是固定的那就利用当中的空格了用MID函数配合left函数来做。
vb 输出数组问题
原因在Array语句,这语句会把数组初始化,即变成下标从0——7,共八个元素。所以代码无法运行。你不能这样给数组赋值 可以这样更改 Option ExplicitOption Base 1 '加一条 语句Private Sub Form_Click()Dim a(), i, K, t As IntegerPrint "插入前:";'删除ReDim a(1 To 9)语句a = Array(4...
VB中给数组元素赋初值
For i =1 To 10 A(i)=0 Next i 就是先让i等于1,,然后执行A(1)=0,遇到Next i,就自动给i加1,i 变成2,回到上面,未超过10,就再执行A(2)=0,如此这般,一直执行到A(10)=0,自动给i加1,i 变成11,再回到上面,已超过10,就不再执行循环体。继续执行Next i这个语句后面的语句...
VB二维数组如何输出?
先把二维数组对角线上的元素进行赋值,然后进行用二层的循环进行输出,在内循环中输出一行上的元素,内循环结束以后换行,整体就完成了。For i = 0 To 9 For j = 0 To 9 Print a(i, j);Next j Print Next i
vb中用for next语句怎么将一个数组在一行输出
VB中在For Next循环中,可以在使用Print方法时用分号";"实现将一个数组在一行输出。在单行上显示不同的项 被显示或被打印的项,可包括属性值、常数和变量(字符串或数字)。“在窗体或图片框上显示文本”一节中讨论过的 Print 方法,可打印数字项的值。正数数值具有一个前导和一个尾部空格。负数...
VB程序设计 产生一个一维数组A(20),以四行五列的形式输出
方法一:Private Sub Form_click()Dim A(1 To 20) As Integer For i = 1 To 20 A(i) = Int(Rnd * 100 + 1)Print A(i),If i Mod 5 = 0 Then Print Next i End Sub 方法二:Private Sub Form_click()Dim A(1 To 20) As Integer For i = 1 To 20 A(i) = Int(Rnd *...
如何在vb中定义数组变量?
(如果希望数组为公用数组,则)用 Public 语句声明数组,或者,(如果希望数组为模块级,则)在模块级用 Dim 语句声明数组,或者(如果希望数组为局部数组,则)在过程中用 Static 或 Dim 语句声明数组。给数组附以一个空维数表,这样就将数组声明为动态数组。Dim DynArray ()用 ReDim 语句分配实际的...
vb数组赋值问题
InputBox("请按顺序输入数组中各元素的值")Picture1.Print "a("& i & ")=";a(i)Next i End Sub 1)你代码稍作修改可以输入数组中各各元素的值.2)当然也可在窗体初始化时给数组赋值:Private Sub Form_Load()a(0)= 1 a(0)= 11 a(0)= 27 a(0)= 15 a(0)= 136 a(0)= 44 ...
在VB编程中怎样给二维数组赋值
Dim a(3) As Variant a(0) = Array(1, 2, 3, 4)a(1) = Array(5, 6, 7, 8)a(2) = Array(9, 10, 11, 12)a(3) = Array(13, 14, 15, 16)For i = 0 To 3 For j = 0 To 3 Debug.Print a(i)(j);Next j Next i ...
载矩弥凝: optionnbsp;explicitprivatenbsp;subnbsp;command1_click()dimnbsp;inbsp;asnbsp;integer,nbsp;jnbsp;asnbsp;integer,nbsp;n,nbsp;temp,nbsp;itemdimnbsp;arr1()nbsp;asnbsp;singledimnbsp;maxnbsp;asnbsp;single,nbsp;minnbsp;asnbsp;...
德清县13056699855: VB任意输入n个数,按由小到大的顺序排列并显示输出 - ?
载矩弥凝: Dim a() As Integer Private Sub Command1_Click() b = InputBox("请输入将要输入数字的个数") ReDim a(b) As Integer For i = 1 To b a(i) = InputBox("请输入数字", "数字排序") Next i For i = b To 2 Step -1 For j = 1 To i - 1 If a(j) > a(j + 1) Then t = a(j + 1) a(j + 1) = a(j) a(j) = t End If Next j Next i For i = 1 To b Print a(i) Next i End Sub
德清县13056699855: 用VB编写 “ 从键盘输入N个数据,放入数组中,然后求其平均值”怎么写啊 - ?
载矩弥凝: dim count as String dim sum as String dim a[10] for i=1 to 10 a[i]=intputbox "输入a[i] 的值" next i sum =0 for i=1 to 10 sum =sum +a[i] next i count=sum/10 你放到一个事件中执行应该可以!!
德清县13056699855: 输入x,y,z三个数,按从大到小的次序显示用VB程序怎么写 - ?
载矩弥凝: Dim x%,y%,z%,a Private Sub Command1_Click() Randomize Timer x= Int(Rnd*100+1) y= Int(Rnd*100+1) z= Int(Rnd*100+1) Print If x< y Then a= x x= y y= a End If'x<y If y< z Then a= y y= z z= a'y<z End If If x< y Then a= x x= y y= a End If'x<y,此处y为原来的z Print Tab(5);"随机产生数字从大到小排序:"; x; y; z End Sub
德清县13056699855: vb编程,输入xyz三个数,按从大倒小排列 - ?
载矩弥凝: 这是 我按照你的要求改的 你看看x=inputbox("请输入第一个数!") y=inputbox("请输入第一个数!") z=inputbox("请输入第一个数!") print"排序前" & x & y & z if x>y thena=x:x=y:y=a endif if y>z thena=y:y=z:z=a endif if x>y thena=x:x=y:y=a endif print "排序后" & x & y & z 就完了 我建议你用 第一种 方法 不懂的可以联系我!!!!
德清县13056699855: vb 编程 用for循环向一维数组中输入N个数,N的值由输入对话框输入 - ?
载矩弥凝: Sub gmyl() Dim s(0 To 9999), s1(), max, min kn = 0 a:s(kn) = InputBox("", "请输入一个数") If s(kn) = "" Then GoTo b End If kn = kn + 1 GoTo a b:ReDim s1(0 To kn - 1) For i = 0 To kn - 1 s1(i) = s(i) Next i For i = 0 To kn - 1 MsgBox s1(i) ...
德清县13056699855: vb程序用inputbox函数输入三个任意整数,按从大到小的顺序输出 - ?
载矩弥凝: Dim c As LongDim a As StringDim b() As Stringa = InputBox("输入三个数字,用逗号“,”隔开", "提示")b = Split(a, ",...
德清县13056699855: VB从键盘输入10到数组中,然后按照数值由大到小的顺序输出 - ?
载矩弥凝: Private Sub Form_Click() Dim a(1 To 10) As Integer For i = 1 To 10 a(i) = InputBox("输入") Next i For i = 1 To 10 p = i For j = i + 1 To 10 If a(p) Next j t = a(i): a(i) = a(p): a(p) = t Print a(i); Next i End Sub
德清县13056699855: VB数组编程 输入n个数,求其中的最大值 - ?
载矩弥凝: Private Sub Command1_Click() Dim num%, i%, m%, n% Cls n = Val(Text1) num = Int(Rnd * 99 + 1)'先随即一个数 Print num; Max = num'当前他最大 Min = num'同时也最小 For i = 2 To n num = Int(Rnd * 99 + 1)'生成其余的随机数 Print num; If num >...