Записать отобранные данные в массив - 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 ();
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5
Похожие ответы