问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

随机产生n个(20≤n≤100)两位整数,找出其中的奇数、偶数和素数,并...

发布网友 发布时间:2024-10-19 04:28

我来回答

2个回答

热心网友 时间:2024-11-30 06:54

Const n = 20

Dim a(1 To n) As Integer


'降序自定义过程

Sub sort(left As Integer, right As Integer)


For i = left To right - 1

For j = right To i + 1 Step -1

If a(j) > a(j - 1) Then

t = a(j): a(j) = a(j - 1): a(j - 1) = t

End If

Next j

Next i


End Sub


'方法一:数组先不排序,用2个游标,一个指向左边第1个位置,一个指向右边第n个位置

'如果左边游标指向的是偶数,则指向下一个数字,一直持续直到指向的是奇数

'如果右边游标指向的是奇数,则指向上一个数字,一直持续直到指向的是偶数

'左边游标和右边游标指向的数字交换

'如果左边游标越过右边游标,则循环结束,这时候偶数和奇数已经实现分离,且偶数在前,奇数在后

'分别对偶数和奇数,调用自定义过程,排序


Private Sub Command1_Click()


Dim left As Integer, right As Integer, k As Integer


List2.Clear


left = 1                                   '左标志

right = n                                  '右标志



Do While True                           '一直循环


Do While a(left) Mod 2 = 0         '若是偶数,左标志一直往右移

left = left + 1

Loop

Do While a(right) Mod 2 = 1         '若是奇数,右标志一直往左移

right = right - 1

Loop

If left > right Then Exit Do        '如果左标志超过右标志,退出循环

t = a(left)                        '当左是奇数,右是偶数,两者交换

a(left) = a(right)

a(right) = t

Loop


'最后right是指向最后一个偶数,left是指向第一个奇数


Call sort(1, right)

Call sort(left, n)



For i = 1 To n

List2.AddItem Format(i, "00") & "   " & a(i)

Next i



End Sub


'方法二:数组中所有数字除2取余,奇数得1,偶数得0

'采用排序算法,按照他们余数大小从小到大排序,最后所有偶数在前,奇数在后

'分别对偶数和奇数,调用自定义过程排序


Private Sub Command2_Click()

Dim i As Integer, j As Integer, k As Integer


List2.Clear



For i = 1 To n - 1

For j = n To i + 1 Step -1

If a(j) Mod 2 < a(j - 1) Mod 2 Then         '所有数字除2取余,将奇偶分离,偶在前

t = a(j)

a(j) = a(j - 1)

a(j - 1) = t

End If

Next j

Next i


For i = 1 To n

If a(i) Mod 2 = 0 Then k = k + 1                '找出偶数个数

Next i


Call sort(1, k)

Call sort(k + 1, n)


For i = 1 To n

List2.AddItem Format(i, "00") & "   " & a(i)

Next i






End Sub




'方法三:先将数组从大到小排序

'从最后位置N开始往上搜索,找到奇数(位置i),将它保存到临时变量t中

'将i+1~n位置所有数字往前移一位到i~n-1

'将临时变量t,即原先i位置的数字,移动到第n位置

'依次类推,所有奇数全部移到后面,但奇数是从小到大排序的

'将奇数重新,调用自定义过程,从大到小排序一次


Private Sub Command4_Click()


List2.Clear


Call sort(1, n)         '数据全部从大到小排序


For i = n To 1 Step -1                  '从下到上,找到一个奇数,把后面的数字全部往前移一位,把该奇数移到最后一个位置

If a(i) Mod 2 = 1 Then              '最后最小奇数在前,最大奇数在后

k = k + 1                       '统计奇数个数

t = a(i)                        '保存好第i个数字

For j = i To n - 1              '所有数字往前移一位

a(j) = a(j + 1)

Next j


a(n) = t                            '第i个数字移到最后位置

End If


Next i



Call sort(n - k + 1, n)   '奇数重新倒置排序



For i = 1 To n

List2.AddItem Format(i, "00") & "   " & a(i)

Next i



End Sub



Private Sub Command3_Click()

List1.Clear

Randomize

For i = 1 To n

a(i) = Int(Rnd * 100)

List1.AddItem Format(i, "00") & "   " & a(i)

Next i

End Sub


热心网友 时间:2024-11-30 06:51

好的,没有事
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
有的时候脑海里有旋律。但是想不出来不知道是什么乐器演奏的。。只能... ...就听不准了 好像被和弦带偏了似的... 怎么办 钢琴 ...想用钢琴弹出来,但老是找不准音。这种情况怎么办呢,怎么练习,要是... DNF女枪炮师110级装备选择指南(全面解析女枪炮师110级装备搭配)_百度... 性生活出血要做什么检查 英国旅游签证办理需要哪些材料? 结婚证在女方户籍地办理有必要吗 结婚的时候在女方户口所在地领结婚证可以吗 结婚证可以在女方户口所在地领吗? 为什么有的微信号显示用户不存在了 ...的顺序使得所有奇数位于数组的前半部分,所有偶数位于数组的后半部分... nfd吊灯是什么意思? 天线开关需要单独供电吗 全向吸顶天线不用电吗 电机NFD是什么意思? nfd是什么药 天线的使用需要为其进行供电么? "NFD"缩写为何意,它代表什么类型的皮肤病? "NfD"代表什么? "NFD”代表什么? 地下车库车被淹了保险公司会赔不 女性尿完后刺痛是怎么引起的 尿刺痛怎么回事 ...而是过了3个月才宣战?二战胜利的原因有哪些? 二次世界大战在诺曼底登陆之前苏联已经取得决定性的胜利了,对吗? ...消灭了800万,西方这时才发起诺曼底登陆,有意义吗? 二战德国900万军队被苏联消灭800万,西方发起诺曼底登陆,有意义吗? 苏玫氏头发纤维粉是怎么使用的?有人用过吗? 苏玫氏头发纤维粉不适合哪些人使用? 头发纤维粉什么样子的发型都能使用吗?(补充:最近想买一瓶苏玫氏头发纤维... ...自然数的奇数和偶数分别存放到data0和data1数组中? 梦见自己家住在最高处,从下往上走,路上看见数不清的纯白的云似的狐狸从... ...爱情住在哪里?”“心里”“你住在我心里” 是什么意思_百度... 珠海西米科技有限公司怎么样 珠海西米新材料有限公司怎么样? ...制作海报-procreate画打印做海报展板那些可以在procreate上画吗... 晋江市华耀印刷工艺有限公司怎么样? 挪威投资移民的条件 挪威移民最简单的方法 哪个国家移民最简单 塑料颗粒怎么样 萧炎战斗实力 萧炎为什么有龙凰血脉 慈姥矶诗(何逊)拼音版、注音及读音 ...层楼,我想买其中一层,房产证和土地证是整栋楼共用。请问这种买卖合法... ...房子,整栋楼是有房产证的和土地证的,我的是四层,总共是6家人住,单 ... ...且有同村人公证.持有对方的土地证和房产证,但 25岁穿哪个牌子内衣 推荐适合18~25岁的女孩子的内衣品牌 最好是专柜的 丸子杂烩汤的家常做法