Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
w0nder
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 131
#1

Определить, есть ли среди элементов массива такие, которые равны сумме двух других - C++

23.11.2012, 01:21. Просмотров 535. Ответов 17
Метки нет (Все метки)

Дано натуральное число n и целые числа a(1), a(2), ..a(n) (n<100). Определить, есть ли среди этих чисел такие, которые равны сумме двух других. Напечатать эти числа в форме a(k) = a(i) + a(j)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream> 
 
using namespace std; 
 
int main () 
{ 
int *a,n,i,j,k; 
cin>>n; 
a = new int [n]; 
for (i = 0; i < n; i++) 
cin >> a; 
for (i = 0; i < n; i++) 
for (j = 0; j < n; j++) 
for (k = 0; k < n; k++) 
if (i != j && i != k && j != k && a[j] + a[k] == a) 
cout << a << " = " << a[j] << " + " << a[k] << endl; 
return 0; 
}
или что нужно вводить в окне программы, чтобы она что-то вообще выдавала?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.11.2012, 01:21     Определить, есть ли среди элементов массива такие, которые равны сумме двух других
Посмотрите здесь:

Среди элементов массива найти индексы всех таких, которые могут быть получены cуммированием двух элементов C++
C++ Определить, равны ли максимумы среди элементов выше и ниже диагоналей матрицы
Найти на заданном отрезке все числа, которые равны сумме кубов своих цифр C++
C++ В массиве натуральных чисел определить хотя бы один элемент, представимый в виде суммы квадратов двух других элементов этого массива
Определить, есть ли среди элементов массива простые числа... C++
C++ Среди чисел найти все, у которых сумма первых двух равна сумме последних двух
Подсчитать количество элементов массива с одинаковым местоположением, которые равны C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6549 / 3969 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
23.11.2012, 01:26     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #2
Окно появляется на доли секунды и исчезает

Добавлено через 30 секунд
Цитата Сообщение от w0nder Посмотреть сообщение
C++
1
cin >> a;
C++
1
cin >> a[i];
Добавлено через 1 минуту
Цитата Сообщение от w0nder Посмотреть сообщение
или что нужно вводить в окне программы, чтобы она что-то вообще выдавала?
уверены что условие в 16-й строке выполняется?
MrGluck
Ворчун
Эксперт CЭксперт С++
6634 / 3825 / 502
Регистрация: 29.11.2010
Сообщений: 10,111
23.11.2012, 01:30     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #3
C++
1
a = new int [n];
а убирать кто будет?
C++
1
delete []a;
w0nder
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 131
23.11.2012, 01:32  [ТС]     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #4
delete []a;

а куда его?
MrGluck
Ворчун
Эксперт CЭксперт С++
6634 / 3825 / 502
Регистрация: 29.11.2010
Сообщений: 10,111
23.11.2012, 01:37     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #5
Цитата Сообщение от w0nder Посмотреть сообщение
delete []a;

а куда его?
туда, после чего массив уже не нужен. Например, перед return.
Ksata
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 24
23.11.2012, 01:37     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #6
перед return, очищение памяти)
w0nder
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 131
23.11.2012, 01:49  [ТС]     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
using namespace std;
 
int main ()
{
int *a,n,i,j,k;
cin>>n;
a = new int [n];
for (i = 0; i < n; i++)
cin >> a[i];
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
for (k = 0; k < n; k++)
if (i != j && i != k && j != k && a[j] + a[k] == a)
cout << a << " = " << a[j] << " + " << a[k] << endl;
delete []a;
return 0;
}
выдает ошибку на строчку с if-ом(
StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
23.11.2012, 01:59     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #8
Цитата Сообщение от w0nder Посмотреть сообщение
a[j] + a[k] == a
вы сравниваете int с указателем на адрес первого элемента массива. нужно сравнивать с конкретным элементом, a[n] например
w0nder
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 131
23.11.2012, 02:09  [ТС]     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #9
Вообще даже если убрать строчку, все равно прога не выдает ничего :С
StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
23.11.2012, 02:12     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #10
Цитата Сообщение от w0nder Посмотреть сообщение
все равно прога не выдает ничего
перед return нужно добавить cin.get() или system("pause")
booker
23 / 23 / 2
Регистрация: 21.11.2012
Сообщений: 106
23.11.2012, 02:14     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #11
if (i != j && i != k && j != k && a[j] + a[k] == a)

а если один из множителей равен 0 уже не тру)

ах да извиняюсь речь о целых числах

ноль целое число?
w0nder
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 131
23.11.2012, 02:17  [ТС]     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #12
Цитата Сообщение от StanislavUA Посмотреть сообщение
перед return нужно добавить cin.get() или system("pause")
Все равно прога на числа не реагирует никак, только на ввод символов ерунду какую-то выдает
booker
23 / 23 / 2
Регистрация: 21.11.2012
Сообщений: 106
23.11.2012, 02:22     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #13
кстати да, ноль целое число))

Добавлено через 3 минуты
загони числа в массив и сравнивай n++ c (n+(++n))
StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
23.11.2012, 02:22     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #14
Цитата Сообщение от w0nder Посмотреть сообщение
cout << a
вы выводите на экран адрес первого элемента
w0nder
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 131
23.11.2012, 02:26  [ТС]     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #15
Цитата Сообщение от StanislavUA Посмотреть сообщение
вы выводите на экран адрес первого элемента
я не понимаю все равно, что делать надо, руки не из того места(
StanislavUA
44 / 44 / 3
Регистрация: 27.04.2011
Сообщений: 163
23.11.2012, 02:30     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #16
вот, все работает
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
#include <iostream>
 
using namespace std;
 
int main ()
{
    int n;
    cin>>n;
 
    int *a = new int [n];
 
    for (int i = 0; i < n; i++)
        a[i] = i;
 
    for (int i = 0; i < n; i++)
        for(int j = 0; j < n; j++)
            for(int k = 0; k < n; k++)
                if(a[i] == (a[j] + a[k]))
                    cout << a[i] << " = " << a[k] << " + " << a[j] << endl;
 
    delete []a;
 
    system("pause");
    return 0;
}
w0nder
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 131
23.11.2012, 02:32  [ТС]     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #17
спасибо большое!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2012, 13:46     Определить, есть ли среди элементов массива такие, которые равны сумме двух других
Еще ссылки по теме:

C++ Узнать, есть ли среди элементов массива элементы с нечетными номерами, которые кратны 17, и если есть, посчитать их сумму
Определить сколько в массиве элементов, равных сумме всех элементов массива C++
Задано число. Найти пару чисел с наибольшим общим кратным, которые равны в сумме исходному числу C++
C++ удаление элементов массива, которые равны сумме предыдущего и следующего элементов
C++ Найти двузначные числа такие что равны сумме его цифр плюс квадрат их разности

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

Или воспользуйтесь поиском по форуму:
booker
23 / 23 / 2
Регистрация: 21.11.2012
Сообщений: 106
23.11.2012, 13:46     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #18
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
#include<iostream>
using namespace std;
 
int main()
{
    int n = 0;
    int m;
    cout<<"enter number: "<<endl;
    cin>>m;
    
        do
    {
        int k = n;
        
                do
        {
            cout<<n<<"="<<n-k<<" + ";
            cout<<k--<<endl;
        }while(k>=0);
            
               n++;
    }
    while(n<=m);
    system("pause");
    return 0;
}
Вариант без массивов
Yandex
Объявления
23.11.2012, 13:46     Определить, есть ли среди элементов массива такие, которые равны сумме двух других
Ответ Создать тему
Опции темы

Текущее время: 04:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru