已知7个不同的字母a,b,c,d,e,f,g。从这7个字母中依次选择3个,4个,5个字母。打印出来

已知7个不同的字母a,b,c,d,e,f,g。从这7个字母中选择3个字母全部打印出来,共有35种方案。比如abc,abd,abe......。选择4个打印出来也是35种。选择5个打印出来共有21种比如abcde,abcdf,abcdg。
用c语言或者C++作。我用的是vs2015编译器。只要它能通过编译就行。能不能帮个忙稍微
写一点注释。哈哈。谢谢啦老铁。
我这边编译器老是提示cout,cin,endl没有定义。麻烦把需要导入的包在开头写一下。要不我这里编译无法通过
不要随机数,要全部组合。谢谢啦老铁


#include <cstdio>
#include <cstring>

char t[1024] = { 0 };
void PrintCombination(char* s, int n, int k, int selected = 0, int depth = 0)
{
    if (selected == k)
    {
        printf("%s ", t);
        return;
    }

    if (depth < n)
    {
        t[selected] = s[depth];
        PrintCombination(s, n, k, selected + 1, depth + 1);
        t[selected] = '\0';
        PrintCombination(s, n, k, selected, depth + 1);
    }
}

int main()
{
    char* s = "abcdefg";
    int n = strlen(s);

    for (int i = 3; i <= 5; ++i)
    {
        printf("[%dC%d]:\n", n, i);
        PrintCombination(s, n, i);
        printf("\n");
    }

    return 0;
}

http://bbs.csdn.net/topics/390550326

 #include <stdlib.h>
#include <stdio.h>
#include <memory.h>
#include <vector>

using namespace std;

#define FLAG_1      1
#define FLAG_0      0
#define POS_NULL    -1

void GetSelectedItems(char *flags, int flagCnt, vector<vector<int> > &vvCombin)
{
    if (NULL == flags) return;

    vector<int> vecItems;

    for (int i = 0; i < flagCnt; ++i)
    {
        if (flags[i] != FLAG_0) vecItems.push_back(i);
    }

    vvCombin.push_back(vecItems);
}

int Find10Pos(char *flags, int flagCnt)
{
    for (int i = 1; i < flagCnt; ++i)
    {
        if (flags[i - 1] == FLAG_1 && flags[i] == FLAG_0)
        {
            return i - 1;
        }
    }

    return -1;
}

void Swap10Pos(char *flags, int pos)
{
    //10->01
    flags[pos + 0] = FLAG_0;
    flags[pos + 1] = FLAG_1;
}

void ShiftToLeft(char *flags, int endPos)
{
    int cnt = 0;
    for (int i = 0; i < endPos; ++i)
    {
        if (flags[i] == FLAG_1)
        {
            ++cnt;
            flags[i] = FLAG_0;
        }
    }

    for (int i = 0; i < cnt; ++i)
    {
        flags[i] = FLAG_1;
    }
}

bool Select(int n, int m, vector<vector<int> > &vvOut)
{
    if (m > n) return false;

    vvOut.clear();
    char *flags = new char[n];
    if (NULL == flags) return false;

    memset(flags, false, n);
    for (int i = 0; i < m; ++i)
    {
        flags[i] = true;
    }
    GetSelectedItems(flags, n, vvOut);

    int pos = Find10Pos(flags, n);
    while (pos != POS_NULL)
    {
        Swap10Pos(flags, pos);
        ShiftToLeft(flags, pos);

        GetSelectedItems(flags, n, vvOut);

        pos = Find10Pos(flags, n);
    }

    delete[]flags;
    return true;
}

void main()
{
    vector<vector<int> > vvCombin;

    Select(10, 3, vvCombin);

    int nTotalCnt = 0;
    for (size_t i = 0; i < vvCombin.size(); ++i)
    {
        vector<int> &vecItems = vvCombin[i];

        for (size_t j = 0; j < vecItems.size(); j++)
        {
            printf_s("%d\t", vecItems[j] + 1);
        }
        printf_s("\n");
        ++nTotalCnt;
    }
    printf_s("Total count:%d\n", nTotalCnt);
}

void main()
{
vector > vvCombin;

Select(10, 3, vvCombin);

int nTotalCnt = 0;
for (size_t i = 0; i < vvCombin.size(); ++i)
{
    vector<int> &vecItems = vvCombin[i];

    for (size_t j = 0; j < vecItems.size(); j++)
    {
        printf_s("%d\t", vecItems[j] + 1);
    }
    printf_s("\n");
    ++nTotalCnt;
}
printf_s("Total count:%d\n", nTotalCnt);

}

拿到ul之后 $(this).parents().next("input").val("取到的路径参数"), form:input type="hidden" 这种的话没事过,只是inputd的话就是那样写

#include
using namespace std;

void RandomChar(int i_size){
char charArray[7] = {'a','b','c','d','e','f','g'};

cout <<i_size <<"个: ";

for (int i = 0; i< i_size; i++)
{
    int i_rand = rand()%(7-i);
    cout<< charArray[i_rand]<<" ";

    char tmp = charArray[7-i-1];
    charArray[7-i-1] = charArray[i_rand];
    charArray[i_rand] = tmp;
}

cout<<endl;

}

void main (){
// 3个
RandomChar(3);

// 4个
RandomChar(4);

// 5个
RandomChar(5);


getchar();

}

void RandFunction(int nCount)
{
//使用随机数
srand(time(NULL));//保证每次随机数不一样

//nCount标识你希望输出的字母个数
char buf[7]={'a','b','c','d','e','f','g'};
for(int n=0;n<nCount;++n)
{
    printf("%c",buf[rand()%6]);//随机选取0-6下标位置的字符
}

}

//调用函数
printf("请输入打印字母个数");
int n=0;
scanf("%d",&n);
RandFunction(n);

#include
using namespace std;
int main()
{
while(1)
{
int num, i;
char table[7];
cout << "How many characters do you need to print?" << endl;
cin >> num;
cout << "Please select the characters that need to be printed:a,b,c,d,e,f,g" << endl;
for(i = 0; i < num; i++)
{
cin >> table[i];
}
for(i = 0; i < num; i++)
{
cout << table[i];
}
cout << end;
}
}

/*超简版O(∩_∩)O*/

printf_s("%d\t", vecItems[j] + 1);