C语言初学者,有问题比较迷惑

内容如下:一共十个数,从1到100,每个数不重复,且这几个数的和为100。

用递归遍历出所有组合
你题目的解答代码如下:

#include <stdio.h>
int a[10];
void fn(int x,int n,int r)
{
    int i;
    if (r+x>100)
        return;
    if (n>=9)
    {
        for (i = 0; i < 9; i++)
            printf("%d ", a[i]);
        printf("%d\n",100-r);
        return;
    }
    for (i = x; i <= 100; i++)
    {
        a[n] = i;
        fn(i+1,n+1,r+i);
    }
}
int main()
{
    fn(1,0,0);
    return 0;
}

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

需要随机生成满足条件的数,还是找出所有满足条件的数。

就写个for循环,十个数全套下去就好了

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632