logo
ООП для Заоч / Пинчук Лозовская Программир на С

Void main()

{ int n,r,i,k, m=0;

printf("n,r = "); scanf("%d %d",&n,&r);

int* A= new int[r];

for (i=0;i<r;i++) A[i]=i;

// початкова ініціалізація масиву А

int p=1, q=1;

while (p)

{ for (i=0;i<r;i++) printf("%2d ",A[i]);

puts(""); m++;

// виведення чергової підмножини

k=r-1; q=1; // k - номер активного елементу масиву А

while (q) { A[k]++;

if (A[k]+r-k-1 < n) q=0;

// чергова підмножина вже є

else k--; // відкат назад

if (k<0) { p=0; break; }

for (i=k+1;i<r;i++) A[i]=A[i-1]+1;

// формування хвоста чергової підмножини

}

}

printf("m= %d \n",m);

delete[] A;

}