Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 04.12.2015
Сообщений: 7

Массив: найти равные элементы в 0 столбце массива...

04.12.2015, 21:05. Показов 1081. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно найти равные элементы в 0 столбце массива и если они равны, сложить элементы 1 столбца находящиеся на той же строке, что и 0 элемент, после чего приравнять к нулю повторяющийся элемент по 0 и 1 столбцу. Я хотел записать в новый массив все повторяющиеся элементы, но что то пошло не так. Было бы неплохо не использовать 2й массив, а перезаписать 1й.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
 
using namespace std;
 
int main()
{
        int id, qyt, i, all[50][2], sum[50][2];
        
        i=0;
        
        while (1) {
            cin>>id >>qyt;
            
            if(id==999) {
                break;
            }
            
            if(id==666) {
                for (int n=0; n<i; n++) {
                    if (all[n][0]=all[n][0] && all[n][0]!=all[n][0]) {
                        sum[n][0]=all[n][0];
                        sum[n][1]=all[n][1]+all[n][1];
                    } else {
                        sum[50-n][0]=all[n][0];
                        sum[50-n][1]=all[n][1];
                    }
                }
            }
            
            all[i][0]=id;
            all[i][1]=qyt;
            
            i++;
            
            
            
        }
        
        for (int win=0; win<i; win++) {
            cout<<sum[win][0] <<"  " <<sum[win][1];
        }
        
        return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.12.2015, 21:05
Ответы с готовыми решениями:

одномерный массив. Все его элементы, не равные нулю, переписать, сохраняя их порядок в начало массива, а нулевые элементы в конец массива in c++
одномерный массив. Все его элементы, не равные нулю, переписать, сохраняя их порядок в начало массива, а нулевые элементы в конец...

Найти равные элементы массива
Дан двумерный целочисленный массив А(2, 10). Известно, что среди его элементов два и только два равны между собой. Напечатать их индексы....

[C++] есть ли в столбце двумерной матрицы равные элементы
Нужно написать функцию которая определяет есть ли в столбце двумерной матрицы равные элементы и выводит номера этих столбцов

2
5 / 5 / 3
Регистрация: 02.08.2015
Сообщений: 62
04.12.2015, 23:11
Я не до конца понял условие, итак:

1 вариант. Сначала сравниваем число, а потом записываем сумму всех
То есть, например массив (записал в строчку для удобства)
1 2 3 1 1 5 7
9 8 7 6 5 4 3
Тогда происходит вот что (для первого элемента)
Наше число - 1, находим все остальные числа с 1:
Это 4 элемент и 5 элемент
Складываем их пары:
1 + 6 + 5 = 12;
Результат:
12 2 3 0 0 5 7
9 8 7 0 0 4 3
2 вариант. Находим по очереди
1 2 3 1 1 5 7
9 8 7 6 5 4 3
Наше число - 1, находим пару к нему
Элемент 4. Сумма:
1 + 6 = 7
Теперь наше число 7
7 2 3 0 1 5 7
9 8 7 0 5 4 3
И находим уже с семеркой
7-й элемент, сумма:
7 + 3 = 10
Получаем
10 2 3 0 1 5 0
9 8 7 0 5 4 0
Код для первого варианта:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
 
using namespace std;
 
int main() {
    int arr[50][2]; //Массив
    for (int i = 0; i < 50; i++) {
        for (int j = 0; j < 2; j++) {
            arr[i][j] = rand() % 9 + 1; //Заполнение массива случайными числами [1; 9]
            cout << arr[i][j] << " "; //Вывод оригинального массива
        }
        cout << endl;
    }
    cout << endl;
 
    for (int i = 0; i < 50; i++) { //Изменения
        int check = arr[i][0]; //Число, которое сравнивают (первое)
        for (int j = i + 1; j < 50; j++) {
            if (check == arr[j][0]) { //Если первое равно числу ниже в столбце (второе)
                arr[i][0] += arr[j][1]; //То в первое число 0 столбца записываем сумму
                arr[j][0] = 0; //В второе число 0 и 1 столбца записываем 0
                arr[j][1] = 0;
            }
        }
    }
    for (int i = 0; i < 50; i++) {
        for (int j = 0; j < 2; j++) {
            cout << arr[i][j] << " "; //Вывод полученного массива
        }
        cout << endl;
    }
    system("pause");
    return 0;
}
Код для второго варианта
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
 
using namespace std;
 
int main() {
    int arr[50][2]; //Массив
    for (int i = 0; i < 50; i++) {
        for (int j = 0; j < 2; j++) {
            arr[i][j] = rand() % 9 + 1; //Заполнение массива случайными числами [1; 9]
            cout << arr[i][j] << " "; //Вывод оригинального массива
        }
        cout << endl;
    }
    cout << endl;
 
    for (int i = 0; i < 50; i++) { //Изменения
        for (int j = i + 1; j < 50; j++) {
            if (arr[i][0] == arr[j][0]) { //Если сравниваемое число (первое) равно числу ниже в столбце (второе)
                arr[i][0] += arr[j][1]; //То в первое число 0 столбца записываем сумму
                arr[j][0] = 0; //В второе число 0 и 1 столбца записываем 0
                arr[j][1] = 0;
            }
        }
    }
    for (int i = 0; i < 50; i++) {
        for (int j = 0; j < 2; j++) {
            cout << arr[i][j] << " "; //Вывод полученного массива
        }
        cout << endl;
    }
    system("pause");
    return 0;
}
1
0 / 0 / 0
Регистрация: 04.12.2015
Сообщений: 7
05.12.2015, 00:26  [ТС]
Цитата Сообщение от Голубь Вася Посмотреть сообщение
1 2 3 1 1 5 7
9 8 7 6 5 4 3
Вообще я планировал на выходе получать

1 2 3 0 0 5 7
20 8 7 0 0 4 3

Но ваши варианты тоже подошли. Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.12.2015, 00:26
Помогаю со студенческими работами здесь

Сформировать массив С, который содержит элементы массива А, по модулю равные некоторым элементам В.
Даны два одномерных массива чисел А и В. Сформировать из них массив С, который содержит элементы А по модулю равные некоторым элементам...

Найти первые равные элементы массива и заменить их на элемент с противоположным знаком
условие: 1. Дан массив положительных чисел. Среди них есть равные. Найти первые равные элементы массива и заменить их на элемент с...

Дан массив А из n элементов. Получите новый массив, удалив из исходного элементы все элементы равные заданному
Дан массив А из n элементов. Получите новый массив, удалив из исходного элементы все элементы равные заданному пользователем числу k. ...

Переписать элементы массива, не равные нулю, в начало массива, а нулевые элементы - в конец массива
Дан одномерный массив. Все его элементы, не равные нулю, перепишите (сохраняя их порядок) в начало массива, а нулевые элементы - в конец...

Преобразование массива: преобразовать массив чтобы сначала располагались все элементы, равные нулю, а потом остальные
Подскажите, как можно преобразовать одномерный массив чтобы сначала располагались все элементы, равные нулю, а потом остальные? Видел на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru