Помогите пожалуйста решить задачу по С++!!Срочно..
Дан массив {3,2,0,4,-10,6,7,11,2,3,1,-1,8,9} Вывести пары элементов сумма которых равна 5
Дан массив {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));
}
У меня вот что по быстренькому получилось. Может быть даже правильно
Решай двойным циклом. Не забудь во вложенном цикле текущий элемент пропустить.
Либо сделаю за 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.
Здесь считается количество пар, но после несложных манипуляций можно сделать так, чтобы выводились сами пары.