Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 18.10.2019
Сообщений: 51

Указать пары таких элементов последовательности, что их сумма равна m

18.10.2019, 15:07. Показов 3944. Ответов 50
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана последовательность N целых чисел и целое число m.
Указать пары чисел этой последовательности таких, что их
сумма равна m. Провести тестирование программы
при пользовательском вводе элементов массива и при генерации
элементов массива из диапазона [0; k], где k – номер студента
в списке группы. k=17
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.10.2019, 15:07
Ответы с готовыми решениями:

Указать в последовательности пары чисел (ai, aj), таких, что ai+aj=m
Дана последовательность целых чисел a1,a2...an. Указать пары чисел ai,aj,таких,что ai+aj=m.

Указать пары чисел ai, aj таких x, что ai + aj = m
Дана последовательность целых чисел a1, a2,..., an. Указать пары чисел ai, aj таких x, что ai + aj = m

Указать пары чисел таких, что ai + Eaj = m
Дана последовательность целых чисел a1, a2, …, an. Указать пары чисел таких, что ai + Eaj = m Сделать нужно одномерным массивом

50
0 / 0 / 0
Регистрация: 18.10.2019
Сообщений: 51
18.10.2019, 17:26  [ТС]
Студворк — интернет-сервис помощи студентам
Цикл так оформляется. М же я обозначил.
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
18.10.2019, 17:29
Translater757, ну да, второй цикл надо начинать со следующего элемента

Добавлено через 49 секунд
Цитата Сообщение от Translater757 Посмотреть сообщение
М же я обозначил
И чему оно равно?

Добавлено через 1 минуту
Цитата Сообщение от Translater757 Посмотреть сообщение
Цикл так оформляется.
Сравни свои же:
C++
1
for (i = 0; i < N; i++)
C++
1
for(i=0;N-1;i++)
1
0 / 0 / 0
Регистрация: 18.10.2019
Сообщений: 51
18.10.2019, 17:31  [ТС]
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
// ConsoleApplication17.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include<stdlib.h>
#include<locale.h>
 
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Rus");
    const int N = 5;
    int i,m,j, Array[N], Summ;
    srand(time(NULL));
    for (i = 0; i < N; i++)
        Array[i] = rand() %18;
    cout << "Сгенерированный массив" << endl;
    for ( i = 0; i < N; i++)
        cout << Array[i]<<" ";
    cout << endl;
    for(i=0;N-1;i++)
        for(j=0;N-1;i++)
            if(Array[i]+Array[j]==m)
                cout<<Array[i]<<Array[j]<<endl;
 
    
 
system("pause");
return (0);
}
Вот как у меня получилось. М не определен почему то.
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
18.10.2019, 17:43
Translater757, разберись с циклом:
C++
1
for(i=0;N-1;i++)
Вторым выражением должно быть условие выхода из цикла. N-1 всегда > 0. Поэтому цикл будет вечным.
Цитата Сообщение от Translater757 Посмотреть сообщение
М не определен почему то
Так проинициируй m. Кто мешает?
А циклы обхода надо сделать так:
C++
1
2
   for(i=0;i<N-1;i++)
        for(j=i+1;j<N;j++)
Добавлено через 6 минут
Кстати, у тебя во втором цикле обхода была еще одна ошибка:
C++
1
for(j=0;N-1;i++)
Цикл по j, а инкремент i Как правильно, смотри выше
1
0 / 0 / 0
Регистрация: 18.10.2019
Сообщений: 51
18.10.2019, 17:53  [ТС]
Ничего не понял, но очень интересно.
Какую строку вписать, чтобы m ввелась?
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
18.10.2019, 17:55
Типа так:
C++
1
const int m = 3;
И убрать m из следующей строки
C++
1
int i, j, Array[N];
1
0 / 0 / 0
Регистрация: 18.10.2019
Сообщений: 51
18.10.2019, 18:02  [ТС]
М я должен в консоли вводить.
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
18.10.2019, 18:04
Какие проблемы?
C++
1
2
3
int i, j, m, Array[N];
cout << "m = ";
cin >> m;
1
0 / 0 / 0
Регистрация: 18.10.2019
Сообщений: 51
18.10.2019, 18:22  [ТС]
Можешь вк свой дать? Иои тут Нельзя?
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
18.10.2019, 18:24
Во-первых, нельзя, во-вторых, не пользуюсь.
Давай здесь. Вроде как, все уже на мази. Осталось все слепить в кучу
0
0 / 0 / 0
Регистрация: 18.10.2019
Сообщений: 51
18.10.2019, 18:25  [ТС]
Д я не дома ща. Приеду, попытаюсь доделать.
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
18.10.2019, 18:27
Не вопрос. Все обговорено. Учти все замечания. Все должно заработать.
0
0 / 0 / 0
Регистрация: 18.10.2019
Сообщений: 51
18.10.2019, 18:54  [ТС]
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
// ConsoleApplication5.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
//
#include "stdafx.h"
#include <iostream>
#include <time.h>
#include<stdlib.h>
#include<locale.h>
 
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Rus");
    const int N = 5;
    int i, m, j, Array[N], Summ;
    cout << "m = ";
    cin >> m;
    srand(time(NULL));
    for (i = 0; i < N; i++)
        Array[i] = rand() % 18;
    cout << "Сгенерированный массив" << endl;
    for (i = 0; i < N; i++)
        cout << Array[i] << " ";
    cout << endl;
    for (i = 0; N - 1; i++)
        for (j = 0; N - 1; i++)
            if (Array[i] + Array[j] == m)
                cout << Array[i] << Array[j] << endl;
 
 
 
    system("pause");
    return (0);
}
Вот смотри. Что не так?
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
18.10.2019, 18:56
Translater757, я уже говорил выше:
C++
1
2
for (i = 0; N - 1; i++)
        for (j = 0; N - 1; i++)
Посмотри, что было об этом сказано и исправь
0
0 / 0 / 0
Регистрация: 18.10.2019
Сообщений: 51
18.10.2019, 19:27  [ТС]
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 "stdafx.h"
#include <iostream>
#include <time.h>
#include<stdlib.h>
#include<locale.h>
 
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Rus");
    const int N = 5;
    int i, m, j, Array[N], Summ;
    cout << "m = ";
    cin >> m;
    srand(time(NULL));
    for (i = 0; i < N; i++)
        Array[i] = rand() % 18;
    cout << "Сгенерированный массив" << endl;
    for (i = 0; i < N; i++)
        cout << Array[i] << " ";
    cout << endl;
    for (i = 0; i < N - 1; i++)
        for (j = i + 1; j < N; j++)
            if (Array[i] + Array[j] == m)
                cout << Array[i] << Array[j] << endl;
 
 
 
    system("pause");
    return (0);
}
Что ещё надо?

Добавлено через 6 минут
Мне вообщем ещё надо , если такой суммы масcивов нет , то должно вывестить , типо -"Сумма 10 не составить из данных чисел"
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
18.10.2019, 19:40
Translater757, опять же, никаких проблем. Например, сделай счетчик найденных пар. Сначала обнули, в месте, где находятся и выводятся пары, инкрементируй счетчик. После циклов проверки проверь счетчик, если 0, выводи свое сообщение.
C++
1
cout << "Сумму " << m << " не составить из данных чисел";
0
22 / 13 / 9
Регистрация: 16.10.2019
Сообщений: 64
18.10.2019, 20:21
У меня что-то такое получилось. Подскажите, как можно обойти совпадение нескольких пар при выводе? (Например в массиве два элемента имеют значение 50 и он выводит два раза пару 50 50; 50 50)

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
45
46
47
48
49
50
51
52
53
54
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "RUS");
 
    int size, M;
 
    cout << "Введите число M: ";
    cin >> M;
 
    cout << "Введите размер массива: ";
    cin >> size;
 
    int* array = new int[size];
 
    cout << "Введите элементы для массива: " << endl;
 
    for (int i = 0; i < size; i++)
        cin >> array[i];
 
    for (int i = 0; i < size; i++)
        cout << array[i] << " ";
 
    cout << endl;
    cout << "M = " << M;
    cout << endl;
 
    int count = 0; // на случай если ни одна пара не совпадёт вывести сообщение об этом
 
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
        {
            // ищем пару которая даёт M && исключаем совпадение элемента самим с собой
            if (array[i] + array[j] == M && i != j)
            {
                cout << "Пара " << array[i] << " " << array[j] << " из массива = M";
                cout << endl;
                count++;
            }
        }
    }
 
    if (count == 0)
    {
        cout << "Нет ни одной подходящей пары.";
    }
 
    delete[]array;
 
    return 0;
}
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
18.10.2019, 20:25
LizyH,
C
1
2
3
    for (int i = 0; i < size; i++)
    {
        for (int j = 0; j < size; j++)
заменить на
C
1
2
3
    for (int i = 0; i < size-1; i++)
    {
        for (int j = i+1; j < size; j++)
0
0 / 0 / 0
Регистрация: 18.10.2019
Сообщений: 51
18.10.2019, 21:13  [ТС]
А вот то что чел скинул. Как туда вписать , чтоб он сам рандомные числа N выдавал?

Добавлено через 10 минут
Или чел просто size поставил место N?
0
Эксперт CЭксперт С++
 Аватар для liv
5120 / 4574 / 855
Регистрация: 07.10.2015
Сообщений: 9,462
18.10.2019, 23:01
Translater757, у него size, у тебя n. Какая разница?
Он вводит, ты заполнил случайными... Сравни и найди разницу... Учись анализировать...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.10.2019, 23:01

Массив: Указать пары чисел аi,aj, таких, что aj+ai=m
Дана последовательность целых чисел а1,а2,..., аn. Указать пары чисел аi,aj, таких, что aj+ai=m

Найти все пары чисел, для которых их сумма равна их произведению и количество таких пар
может есть какие-нибудь другие варианты? procedure TForm1.Button1Click(Sender: TObject); var i,j: integer; begin ListBox1.Clear; ...

Определить, верно ли, что в последовательности есть три таких числа, что их сумма больше чем сумма остальных чисел
Дана последовательность целых чисел. Определить, верно ли, что в этой последовательности есть три таких числа, что их сумма больше чем...

В последовательности целых чисел найти пары, сумма которых равна заданному числу
Дана последовательность целых чисел а1, а2,..., аn. Указать пары чисел ai, aj, таких, что ai + aj = t.

Циклы. Среди натуральных чисел от 1 до 100 найти все пары чисел, для которых их сумма равна их произведению и кол-во таких пар.
Среди натуральных чисел от 1 до 100 найти все пары чисел, для которых их сумма равна их произведению и кол-во таких пар. Если таких чисел...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
Более приземисто - Эстафету хвоста в .cdl (деревья эстафеты в сад).
Hrethgir 24.07.2026
В будущем, после написания блока инверсии обхода дерева (эстафеты хвоста), я планирую вернуться к нашему прошлому разговору о том, обладают ли знания целеполаганием. Тогда я пришел к выводу, что. . .
Вот представьте что вам дали бессмертие.
kumehtar 24.07.2026
Вот представьте что вам дали бессмертие, ничего более не меняя. Вообще ничего, только бессмертие в нынешнем виде. Рады были бы? Что бы вы тут делали всё это время? Никакой пенсии. Никакого нового. . .
сукцессия 41
anaschu 24.07.2026
Численная верификация бифуркации в агентной модели лесной сукцессии: от одного параметра к ансамблю Автор: пользователь @Shumilov_AS | Раздел: Прикладная математика / Численные методы Кратко. . .
сукцессия 40. Ансамблевая кластерная параметризаци, часть 1.
anaschu 24.07.2026
Пр# Сопровождение научной статьи ИИ-ассистентом: подготовка публикации и калибровка агентно-ориентированной модели сукцессии микоризных систем **Полевые заметки о двухнедельной совместной работе**. . .
Теория всего 12. ВГК на планете в стратегической игре "терра"
anaschu 21.07.2026
### Главные семантические изменения и дешифровка новой физики 1. **`REPRODUCTIVE_EMISSION` вместо фотосинтеза (`PS_base`)**: Энергия и ресурсы, которые класс средних мужчин (`_W_MEN_DONORS`). . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru