早教吧 育儿知识 作业答案 考试题库 百科 知识分享

编程题(1)从键盘输入8个数,用冒泡法排序。当输入数值0,按升序输出;当输入数值1,按降序输出。(2)从键盘输入两个矩阵A、B的值,求C=A+B。

题目详情
编程题 (1)从键盘输入8个数,用冒泡法排序。当输入数值0,按升序输出;当输入数值1,按降序输出。 (2)从键盘输入两个矩阵A、B的值,求C=A+B 。
▼优质解答
答案和解析
思路是这样:
以升序为例,数字两两比较,如果后一个数小于前一个数,就交换位置,否者位置不变,然后继续比较第二和第三个数字,直到8个数全部比较完(用循环语句),降序排列直接把升序的位置颠倒输出就可以了。以下是我前几天刚好上VB课的排序,你可以参考以下,你复制出来,存为VBS格式就可以运行。
Option Explicit
Sub pailie()
Dim arr(500),m
Do
m=inputbox ("输入排序数字个数,不超过500","标题")
If isnumeric(m) Then
If m<=500 and m>=2 Then
Call ctrl '输入数据
Call sq()
Exit Do
else
Msgbox"必须是2-500"
End If
Else
msgbox"必须是数字"
End If
Loop
End sub
Sub ctrl() '控制输入数据类型
Dim k,i,j,result 'k控制输入循环变量
For k= 0 To m-1
do
arr(k)=inputbox("输入数字"&k+1,"数据输入")
If isnumeric(arr(k)) Then
Exit do
Else
msgbox"请输入数字"
End If
loop
Next
For i=0 To m-1
arr(i)=CDbl(arr(i))
Next
For j=0 To m-1
result = result&" "&arr(j)
next
Msgbox result,,"排列前"
End Sub

Sub sq() '排序
Dim i,j,k,result '排序使用的循环变量
Dim temp '临时储存变量
For i=0 To m-1
For j=i+1 To m-1
If arr(i)>arr(j) then
temp=arr(i)
arr(i)=arr(j)
arr(j)=temp
End If
Next
Next
For k=0 To m-1
result = result&" "&arr(k)
next
Msgbox result,,"排列后"
Msgbox typename(arr(0))
End Sub
看了 编程题(1)从键盘输入8个数...的网友还看了以下: