如何编写一个C语言程序,实现在n个数字里面抽取m个数字:e.g.:输入n=5,m=4→输入5个数字:1 2 3 4 5→输出所有4个数字的组合:1 2 3 41 2 3 51 3 4 52 3 4 5

来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/22 10:09:12
如何编写一个C语言程序,实现在n个数字里面抽取m个数字:e.g.:输入n=5,m=4→输入5个数字:12345→输出所有4个数字的组合:1234123513452345如何编写一个C语言程序,实现在n

如何编写一个C语言程序,实现在n个数字里面抽取m个数字:e.g.:输入n=5,m=4→输入5个数字:1 2 3 4 5→输出所有4个数字的组合:1 2 3 41 2 3 51 3 4 52 3 4 5
如何编写一个C语言程序,实现在n个数字里面抽取m个数字:
e.g.:输入n=5,m=4
→输入5个数字:1 2 3 4 5
→输出所有4个数字的组合:1 2 3 4
1 2 3 5
1 3 4 5
2 3 4 5

如何编写一个C语言程序,实现在n个数字里面抽取m个数字:e.g.:输入n=5,m=4→输入5个数字:1 2 3 4 5→输出所有4个数字的组合:1 2 3 41 2 3 51 3 4 52 3 4 5
// 兵无常势,水无常形,递归遮罩,玲巧组合
#include <stdio.h> 
#define SWAP(a, b) a^=b^=a^=b;
int m, n;
int ar[20], arr[20];
void output()
{
    int i,k;
    for (i = k = 0; i < n && k < m; i++)
    { 
       if (ar[i])
       {
           k ++;
           printf("%d ", arr[i]);
       }
    }
    printf("\n");
}
void combine(int l) 
{
    int p;
    if (-1 < l)
    {
        p = l;
        while(l + 1 < n && !ar[ l + 1 ]) 
        { 
             SWAP(ar[p], ar[l+1]);
             output();
             combine(p - 1);
             SWAP(ar[p], ar[l+1]);
             l ++;
        }
    }
}
void main()
{
    int i;
    printf("Input n: ");
    scanf_s("%d", &n);
    printf("Input m: ");
    scanf_s("%d", &m);
    printf("Input numbers: ");
    for (i=0; i<n; i++)
    { 
        ar[i] = (i<m) ? 1 : 0;
        scanf_s("%d", &arr[i]);
    }
    printf("The combines are:\n");
    output();
    if (m < n)
    {
       combine(m-1);  
    }
    scanf_s("%c", &m);
    getchar();
}

如何编写一个C语言程序,实现在n个数字里面抽取m个数字:e.g.:输入n=5,m=4→输入5个数字:1 2 3 4 5→输出所有4个数字的组合:1 2 3 41 2 3 51 3 4 52 3 4 5 编一道程序,用C语言编写,如题编写一个程序,在记事本里产生n个随机数(n由用户确定,n C语言编写一个程序,实现如下功能:从键盘输入一个三位数,求各位数字之和. 编写一个C语言程序:用来实现在屏幕上显示一句话:Hello World!. 用C语言编写一个程序:从键盘输入n(0 用C语言编写程序,输入一个正整数n(1 在C语言中,如何编写程序实现控制符号变化,比如-1和1交替变化. 编写一个C语言程序,关于“统计一条英文句子中字母的个数,在主程序中实现输入输出” 编写C语言程序从n(20 编写程序实现输入整数n,输出如下所示由数字组成的菱形.用c语言写.1 121 12321 1234321 12321 121 1 C语言:斐波那契数列.请编写一个递归函数int fibo(int n)函数得到它的第n项,之后在主函数中调用fibo()输出它的前30项值,每行输出5个数据.请编写程序实现上述功能,并回答问题:(1)递归函数由哪 用C语言编写程序,随机输出一个使用0~9是个数字组成无重复的七位数 用C语言编写个程序,输入一个2-7为的整数,然后判断是否是一个runaround数一个N位的runaround数的特点:(1)该整数有N位,每一位数字在1~9之间.(2)这些数字构成了一个序列,序列中每位数字的值 编写一个程序用单链表存储多项式,并实现两个多项式相加的函数?C/C++语言 如何用C语言编写程序实现哥德巴赫猜想 C语言里如何输入一个数N而且得到N个变量就是那个在界面上输入一个数字N,然后程序就可以让得到N个变量,然后每个变量都可以进行自己独立的运算 编写一个C语言程序,利用随机数产生若干个整数存入文件,然后从文件中读取,显示在屏用C语言编写,尽可能简单点. 用c语言编写一个程序.要求编写一个求2的n次方的函数实现.求满足以下条件的最大的n.2+4+8+……+2的n次方