Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "pch.h"
- #include <iostream>
- #include <Windows.h>
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- const int nmax = 20;
- int a[nmax];//dannye
- int b[nmax];//bin schetchik
- int count, i, j, z, sum, sumel, polsum; char group1[nmax]; int group2[nmax];
- printf("Введите кол-во элементов:\n");
- scanf_s("%d", &count);
- printf("Введите вес элементов:\n");
- sum = 0;
- for (int i = 0; i < count; i++)
- {
- scanf_s("%d", &a[i]);
- sum = sum + a[i];
- }
- polsum = sum / 2;
- memset(b, 0, sizeof(b));
- b[0] = 1;
- int min = 1000;
- int summas = 0;
- int cravn[20][20]{ 0 };
- char str1=0, str2=0;
- int razn = 1000;
- int ysl;
- printf("Первый массив\n");
- do
- {
- ysl = 1;
- summas = 0;
- for (i = 0; i < count; i++)
- if (b[i] == 1) {
- cravn[str1][str2] = a[i];
- str2++;
- }
- for (int i = 0; i<str2; i++) {
- summas += cravn[str1][i];
- }
- razn = abs(summas - polsum);
- i = 0;
- if (razn < min) {
- ysl = 0;
- min = razn;
- int j = 0;
- for (; j<str2; j++) {
- group1[j] = cravn[str1][j];
- }
- group1[j] = '\0';
- }
- if (razn<=min&&ysl){
- int j = 0;
- for (;j<str2;j++)
- group2[j] = cravn[str1][j];
- group2[j] = '\0';
- }
- str1++;
- str2 = 0;
- /*for (int i = 0; i < count; i++)
- if (b[i] == 1)
- printf("%d", a[i]);
- printf("\n");*/
- i = 0;
- while (b[i] == 1)
- b[i++] = 0;
- b[i] = 1;
- } while (i < count);
- for (int i = 0; group1[i]!='\0'; i++)
- printf("%d\n", group1[i]);
- printf("Второй массив\n");
- for (int i = 0; group2[i] != '\0'; i++)
- printf("%d\n", group2[i]);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement