永发信息网

从1到N改成VBA输出

答案:1  悬赏:40  手机版
解决时间 2021-03-11 14:04
将这个C语言改写成VBA

从1到N,这N个数,从中选取M个出来,请输出每一种组合情况

组合结果从单元格A1开始输出

#include <stdio.h>
int a[10];
int main()
{
void f(int start,int has,int m,int n);
int n,m;
printf("请输入组合上下标中间用空格隔开 ");
scanf("%d%d",&n,&m);
f(0,0,m,n);
return 0;
}
void f(int start,int has,int m,int n)
{
int i;
if (has==m)
{
printf("%d ",a[0]);
for (i=1;i<m;i++)
printf("%d ",a[i]);
printf("\n");
return;
}
for (i=start+1;i+m<=n+has+1;i++)
{
a[has]=i;
f(i,has+1,m,n);
}
}
最佳答案
Dim a(10) As Integer, k As Long
Sub main()
    Dim m As Integer, n As Integer
    n = InputBox("请输入组合下标n")
    m = InputBox("请输入组合上标m")
    f 0, 0, m, n
End Sub
Sub f(ByVal start As Integer, ByVal has As Integer, ByVal m As Integer, ByVal n As Integer)
    Dim i As Integer
    If has = m Then
        k = k + 1
        For i = 1 To m
            Cells(k, i) = a(i - 1)
        Next
        Exit Sub
    End If
    For i = start + 1 To n - m + has + 1
        a(has) = i
        f i, has + 1, m, n
    Next
End Sub
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
请问,妇科高手请进!!,在7月份的时候,我老
四年级下册语文第四单元作文结尾
下列关于神经系统内容的叙述中,不正确的是C
辛家岭这个地址在什么地方,我要处理点事
“ADHD”指的是什么疾病
男朋友故意不回信息是想看看你是不是真的在关
易起通网络电话是不是骗人的,怎么那么多人代
中国邮政济南邮区中心局为什么不对外招招聘司
咳嗽属于外感风热者,宜选用的成药是A.急支糖
大连开发区博文人才培训中心地址有知道的么?
家乐宾馆我想知道这个在什么地方
老子中‘天道无亲,天道无私,天道无情’一段完
作文狗的两面性
车友们惠州车牌现在不好上了吗
别打扰我英文怎么说
推荐资讯
在括号里填上字母变成单词[ ]uts[ ]de
西园地址有知道的么?有点事想过去
如何建立CSS样式文件
弹吉他时,左手是按品柱还是品位啊?
大肚皮餐馆地址在哪,我要去那里办事
三国志10威力184选赵云,194投孙坚,没有董卓崛
【金账户】下面有关保证金账户说法错误的是()
富豪窗饰在什么地方啊,我要过去处理事情
股价半分位是怎么计算的,股价半分位是怎么计
【走遍天下书为侣读后感】走遍天下书为侣的读
CF针筒符号怎么打?
我是黑龙江的文科考生,文化课457分,能上黑
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?