Записать отобранные данные в массив - C (СИ)
Формулировка задачи:
Есть программа, которая выводит комбинации, считает сумму выпавших чисел и если сумма удовл. условию помечает комбинацию ###
Вопрос - а как эти нужные комбинации поместить в массив ну например Y[n]?
Код:
#include <stdio.h>
main (){
int n=3,i,j=0,m=6,X[n],sum=0,S=5,count=0,count2=0;
for(i=0; i<n; i++) X[i] = 1; // заполняю единицами
while(1) {
for(i=0; i<n; i++) {printf(" %d", X[i]);sum=sum+X[i];}
printf(" summa=%d", sum);count2++;
if (sum==S) {count++; printf(" ###");}
sum=0;
printf("\n");
for(i=0; i<n; i++) {
X[i]++;
if (X[i] <= m) break;
X[i] = 1;
}
if (i==n) break;
}
printf("numbers of combination have summ=%d =%d\n",S, count);
printf("numbers of combination %d",count2);
getchar ();
}Решение задачи: «Записать отобранные данные в массив»
textual
Листинг программы
#include <stdio.h>
main (){
int Y_new[10];
int Y[100][10];
int Y_counter=0,t;
int n=4,i,j=0,m=6,X[n],sum=0,S=5,count=0,count2=0;
for(i=0; i<n; i++) X[i] = 1; // заполняю единицами
while(1) {
for(i=0; i<n; i++) {printf(" %d", X[i]);sum=sum+X[i];}
printf(" summa=%d", sum);count2++;
if (sum==S) {count++; printf(" ###");
for(t=0; t<n; t++)
Y[Y_counter][t]=X[t];
Y_counter++;
}
sum=0;
printf("\n");
for(i=0; i<n; i++) {
X[i]++;
if (X[i] <= m) break;
X[i] = 1;
}
if (i==n) break;
}
printf("numbers of combination have summ=%d =%d\n",S, count);
printf("numbers of combination %d",count2);
for (i = 0; i < Y_counter; i++) {
printf("+++");
for(t=0; t<n; t++)
printf("%d ",Y[i][t]);
}
getchar ();
}