0 / 0 / 0
Регистрация: 18.10.2019
Сообщений: 51

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

18.10.2019, 15:07. Показов 3951. Ответов 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru