Я расскажу свое мнение по образцу ... , если мы вводим последовательность, подобную {a, b, c, d}, и если мы выберем число элементов из каждая подпоследовательность 3 должна быть выводимой ... a, b, c | a, b, d | a, c, d | б, в, г ...., обратите внимание, что расположение имеет важное значение (я использую массив) некоторый его вид продукции в целом подмножество, которые содержат 3 элемента последовательности ....для функции, называющей ее self (вложенной функцией)
#include <iostream>
#include <conio.h>
#include <windows.h>
int p = 0, q = 0, i;
void allinone(int thing[], int n, int sub, int tek[], int sum[])
{
for (i = p;i <= n - sub + p;i++)
{
tek[q] = thing[i];
if (p < sub - 1)
{
++q;
++p;
allinone(thing, n, sub, tek, sum);
}
if (q == (sub - 1))
{
for (auto out_p = 0;out_p <= p;out_p++)
std::cout << tek[out_p] << "\t";
std::cout << "\n";
}
}
--q;
return; // not need
}
int main()
{
constexpr int n=5, sub=3; //delete the constexpr if ur compiler is mingw
/*std::cout << "enter array len : "; //add this if ur compiler is mingw
std::cin >> n; // number of elements in sequence
std::cout << "enter sub that u want: ";
std::cin >> sub;*/ // subset
int sum[sub], tek[sub], thing[n];
for (i = 0;i <= n - 1;i++)
std::cin >> thing[i];
allinone(thing, n, sub, tek, sum);
_getch();
return 0;
}
, какая часть это делает программу не вернуться к предыдущей функции ...
см ниже шаги ...
я думаю, что проблема сделала мою мысль, что обещания
#allinone1
first for pormise me it will do this for the i=0,1
{
doing for i=1{
sequence{a,b,c,d} thing[0]=a,thing[1]=b,thing[2]=c,thing[3]=d
tek[0] = a ... go into if ... p=1 , q=1 ... and again its going into the #allinone2 ...
now in the for its promise me to do this for i=1,2
{
doing for i=1
tek[1]= b ... go into if ... p=2 ,q=2 ... and again its going to #allinone3
another for its promise me to do this with i=2,3
{
doing for i=2
tek[2]= c .. go into the output if ... output a b c
doing for i=3
tek[2]= d .. go into output if ... output a d d
}get out of for
q=1
end of the allinone3
go into allinone 2 for
q is not 2 ...
doing for i=2 // i think this part made the problem ....
and ...
я думаю его не сто ring the last i's ...
я знаю о р и д являются дубликатом в этом моем коде, но это мне нужно для р другой части этого, что я не пишу, что в нем ... Я на самом деле не получить вниз голосования .. – Parano
я действительно не получаю ур первой строки – Parano
@Parano, глобальные переменные, в общем, проблематично. Это будет полезно для вас, если вы сможете понять, как избежать их использования. –