Другие языки программирования и технологии

Помогите пожалуйста решить задачу по С++!!Срочно..

Дан массив {3,2,0,4,-10,6,7,11,2,3,1,-1,8,9} Вывести пары элементов сумма которых равна 5
void RunChecker(int start_index, int *arr, int arr_size)
{
for (int i = start_index; i < arr_size; i++)
if (arr [ start_index ] + arr [ i ] == 5)
printf("Summ of elements at indexes %i (%i) and %i (%i) is 5\n", start_index, arr [ start_index ] , i, arr [ i ]);

if (start_index < arr_size - 2)
RunChecker(start_index + 1, arr, arr_size);
}

void main()
{
int arr [ ] = {3, 2, 0, 4, -10, 6, 7, 11, 2, 3, 1, -1, 8, 9};

RunChecker(0, arr, sizeof(arr));
}

У меня вот что по быстренькому получилось. Может быть даже правильно
Ренат Алибеков
Ренат Алибеков
4 338
Лучший ответ
Решай двойным циклом. Не забудь во вложенном цикле текущий элемент пропустить.
Либо сделаю за 50 руб
int c;
int ar = {3,2,0,4,-10,6,7,11,2,3,1,-1,8,9};
for(int i = 0; i < 13; i++){
for(int l = 0; l < 13; l++){
с = ar*ar[l];
if(c == 5)cout << ar + ',' + ar[l];
}
}

чтото типа того
Вот мне интересно, вам зачем? :)

Могу дать код на паскале, найденный по первой ссылке в поисковике. В СПП можете его самостоятельно перекроить, чтобы не всё на халяву было.

var i,h:integer; {задаём описание переменных}
m:string; {наш массив}
begin
repeat {повторять}
writeln('Введите пары чисел. '); {вывод текста на экран}
writeln('Чтобы остановить ввод, напишите в строке "stop". '); {вывод текста на экран}
readln(m); {читаем введённый массив}
if m<>'stop' then {если М не равно СТОП, тогда}
begin
readln(h); {читаем h}
if strtoint(m)+h=5 then inc(i); {если М+H=5, то берём инкремент от i(увеличиваем i на 1)}
end;
until m='stop'; {повторять цикл пока не введено STOP}
writeln(' ');
writeln('Кол-во пар чисел, сумма которых равна тринадцати= ',i);
end.

Здесь считается количество пар, но после несложных манипуляций можно сделать так, чтобы выводились сами пары.