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

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

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

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

23.11.2012, 01:21. Просмотров 544. Ответов 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++ Узнать, есть ли среди элементов массива элементы с нечетными номерами, которые кратны 17, и если есть, посчитать их сумму
Среди элементов массива найти индексы всех таких, которые могут быть получены cуммированием двух элементов C++
Определить, есть ли среди элементов массива простые числа... C++
C++ Найти двузначные числа такие что равны сумме его цифр плюс квадрат их разности
C++ В массиве натуральных чисел определить хотя бы один элемент, представимый в виде суммы квадратов двух других элементов этого массива
C++ Определить, равны ли максимумы среди элементов выше и ниже диагоналей матрицы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 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Эксперт С++
7178 / 4344 / 634
Регистрация: 29.11.2010
Сообщений: 11,822
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Эксперт С++
7178 / 4344 / 634
Регистрация: 29.11.2010
Сообщений: 11,822
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
вы выводите на экран адрес первого элемента
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.11.2012, 02:26     Определить, есть ли среди элементов массива такие, которые равны сумме двух других
Еще ссылки по теме:
C++ Найти натуральные числа которые равны сумме факториалов их цифр
C++ Среди чисел найти все, у которых сумма первых двух равна сумме последних двух
Подсчитать количество элементов массива с одинаковым местоположением, которые равны C++
Найти на заданном отрезке все числа, которые равны сумме кубов своих цифр C++
Определить сколько в массиве элементов, равных сумме всех элементов массива C++

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

Или воспользуйтесь поиском по форуму:
w0nder
0 / 0 / 0
Регистрация: 23.11.2012
Сообщений: 131
23.11.2012, 02:26  [ТС]     Определить, есть ли среди элементов массива такие, которые равны сумме двух других #15
Цитата Сообщение от StanislavUA Посмотреть сообщение
вы выводите на экран адрес первого элемента
я не понимаю все равно, что делать надо, руки не из того места(
Yandex
Объявления
23.11.2012, 02:26     Определить, есть ли среди элементов массива такие, которые равны сумме двух других
Ответ Создать тему
Опции темы

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