vb.net 排列组合 代码
例如有个txt文档,内容如下321546543985746554678215每行有7个数字,任意选择其中5个,进行排列组合,然后列举出所有可能的组合,每一横行数字的所有排...
例如有个txt文档,内容如下
32154654
39857465
54678215
每行有7个数字,任意选择其中5个,进行排列组合,然后列举出所有可能的组合,每一横行数字的所有排列组合仍然写在同一行中,用逗号分开,然后把所有的组合保存在一个另一个txt文档中。
发邮箱也行:279427968@163.com
没分了,谢谢了。。。
真抱歉哈。。。随便打的比方,组合即可,不用排序的。。。那就少弄点吧。。。每行5个选3个。
分是真没了,我另外一个和这个差不多的问题还没结束,里面有100分,你去那个问题那里拿分吧,拜谢大侠。。。http://zhidao.baidu.com/question/208963752.html 展开
32154654
39857465
54678215
每行有7个数字,任意选择其中5个,进行排列组合,然后列举出所有可能的组合,每一横行数字的所有排列组合仍然写在同一行中,用逗号分开,然后把所有的组合保存在一个另一个txt文档中。
发邮箱也行:279427968@163.com
没分了,谢谢了。。。
真抱歉哈。。。随便打的比方,组合即可,不用排序的。。。那就少弄点吧。。。每行5个选3个。
分是真没了,我另外一个和这个差不多的问题还没结束,里面有100分,你去那个问题那里拿分吧,拜谢大侠。。。http://zhidao.baidu.com/question/208963752.html 展开
3个回答
展开全部
第一题:
不需要任何控件,代码如下:
Private Sub Form_Click()
Dim A() As Integer, N As Integer
Dim St As String, I As Integer, J As Integer
Randomize
Do
St = InputBox("数字的个数", "输入", Int(Rnd * 100))
If St = "" Then
MsgBox "请输入数字!"
Else
N = Int(Val(St))
If N < 1 Then
MsgBox "请输入大于0的数字!"
Else
Exit Do
End If
End If
Loop
ReDim A(N)
For I = 1 To N
Do
St = InputBox("第" + Str(I) + "个数字", "输入", Int(Rnd * 100))
If St = "" Then
MsgBox "请输入数字!"
Else
A(I) = Int(Val(St))
Exit Do
End If
Loop
Next
For I = 1 To N - 1
For J = I + 1 To N
If A(I) > A(J) Then
A(0) = A(I)
A(I) = A(J)
A(J) = A(0)
End If
Next
Next
For I = 1 To N
Open App.Path & "\" & Trim(Str(I)) & ".txt" For Output As #1
Print #1, A(I)
Close #1
Next
Print "已经把"; N; "个数写入到"; App.Path; "\1.txt 到 "; N; ".txt中.请查看."
End Sub
'已经运行过.
第二题:
DIM 是变量声明语句,它的格式为:
dim 变量名[as 格式] [,变量名[as 格式][,变量名[as 格式]......]
其中:
变量名:以字母或汉字开始的字串,代表一个变量
格式有以下几种:
属于数字的有五种:
(1)字节型:byte可取值0-255
(2)整形:integer可取值-32768至32767
(3)长整形:long(可取值范围很大的正负整数)
(4)单精度型:single(可取值小数)
(5)双精度型:double(可取值范围更大,小数位数更多的小数)
字符串型:string(可代表由字母\数字或汉字组成的字符集合)
布尔型:boolean(取值为ture\false)
日期型:date(可表示形如2009-5-26 02:36这样的组合)
如果要用姓名\住址\单位名称...等用字符串型(string)
eg:dim name as string(用name变量表示名字时,声明成字符串变量)
如果是用数字需要做计算,如工资\合计\人数....等要用数字型,但有一个原则,优先选用范围小的(按照字节型(byte)\整形(integer)\长整形(long)\单精度型(single)\双精度型(double)的顺序选择),够用就可以了,这样可以占用内存少,运算速度快.
eg:dim count as integer(用integer表示员工人数时,可声明成整形变量)
eg:dim sum as single(用sum表示工资时,可声明成单精度型变量)
不知是否说得清楚了.
不需要任何控件,代码如下:
Private Sub Form_Click()
Dim A() As Integer, N As Integer
Dim St As String, I As Integer, J As Integer
Randomize
Do
St = InputBox("数字的个数", "输入", Int(Rnd * 100))
If St = "" Then
MsgBox "请输入数字!"
Else
N = Int(Val(St))
If N < 1 Then
MsgBox "请输入大于0的数字!"
Else
Exit Do
End If
End If
Loop
ReDim A(N)
For I = 1 To N
Do
St = InputBox("第" + Str(I) + "个数字", "输入", Int(Rnd * 100))
If St = "" Then
MsgBox "请输入数字!"
Else
A(I) = Int(Val(St))
Exit Do
End If
Loop
Next
For I = 1 To N - 1
For J = I + 1 To N
If A(I) > A(J) Then
A(0) = A(I)
A(I) = A(J)
A(J) = A(0)
End If
Next
Next
For I = 1 To N
Open App.Path & "\" & Trim(Str(I)) & ".txt" For Output As #1
Print #1, A(I)
Close #1
Next
Print "已经把"; N; "个数写入到"; App.Path; "\1.txt 到 "; N; ".txt中.请查看."
End Sub
'已经运行过.
第二题:
DIM 是变量声明语句,它的格式为:
dim 变量名[as 格式] [,变量名[as 格式][,变量名[as 格式]......]
其中:
变量名:以字母或汉字开始的字串,代表一个变量
格式有以下几种:
属于数字的有五种:
(1)字节型:byte可取值0-255
(2)整形:integer可取值-32768至32767
(3)长整形:long(可取值范围很大的正负整数)
(4)单精度型:single(可取值小数)
(5)双精度型:double(可取值范围更大,小数位数更多的小数)
字符串型:string(可代表由字母\数字或汉字组成的字符集合)
布尔型:boolean(取值为ture\false)
日期型:date(可表示形如2009-5-26 02:36这样的组合)
如果要用姓名\住址\单位名称...等用字符串型(string)
eg:dim name as string(用name变量表示名字时,声明成字符串变量)
如果是用数字需要做计算,如工资\合计\人数....等要用数字型,但有一个原则,优先选用范围小的(按照字节型(byte)\整形(integer)\长整形(long)\单精度型(single)\双精度型(double)的顺序选择),够用就可以了,这样可以占用内存少,运算速度快.
eg:dim count as integer(用integer表示员工人数时,可声明成整形变量)
eg:dim sum as single(用sum表示工资时,可声明成单精度型变量)
不知是否说得清楚了.
展开全部
晕死,为了你这个程序搞死机了(循环太多了)。你问题问错了吧,每一横行数字的所有排列组合仍然写在同一行中???你如果单单是组合还好,可是你还要排列。你可知道你那32154654可有8个数,OK,就算你多写了一个,实际上只有7个,可是那选5个数组合也有21组数啊 再每组数(5个)排列,那就有2000多个数组啊````老兄。这么多数写在同一行,???请把问题说清楚点。光组合还是排列也要??我再答吧,最好加点赏分。呵呵
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好哦,我写了一份满足你需求的代码,已经发给你了,请查收。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询