Из двух стеков равной длины с вещественными числами создать 1 стек с квадратами значений элементов исходных стеков, не удаляя исходные стеки. При создании нового стека элемент выбирается по очереди по одному элементу из каждого стека. Язык программирования С++
Добавлено:
С помощью массивов я сделал. Помогите реализовать это все с помощью списков.
Код:
#include <iostream>
using namespace std;
int main()
{
setlocale ( LC_ALL, "russian" );
int n = 3;
int stek_a [n], stek_b [n], stek_c [n + n];
int v_a = -1, v_b = -1, v_c = -1;
char s;
bool f = true;
// Заполнение стека 1
while (( v_a < n-1 ) && ( f == true ))
{
v_a ++;
cout << "Vvedite elementi steka A: ";
cin >> stek_a [v_a];
cout << "Zelaete li prodolzit? (y/n): ";
cin >> s;
if ( s == 'n' )
f = false;
}
// Заполнение стека 2
while (( v_b < n-1 ) && ( f == true ))
{
v_b ++;
cout << "Vvedite elementi steka B: ";
cin >> stek_b [v_b];
cout << "Zelaete li prodolzit? (y/n): ";
cin >> s;
if ( s == 'n' )
f = false;
}
// Заполнение стека 3
while (( v_a > -1 ) || ( v_b > -1 ))
{
if (( v_a > -1 ) && ( v_b > -1 ))
{
if ( stek_a [v_a] >= stek_b [v_b])
{
v_c ++;
stek_c [v_c] = stek_a [v_a];
v_a --;
}
else
{
v_c ++;
stek_c [v_c] = stek_b [v_b];
v_b --;
}
}
if (( v_a == -1 ) && ( v_b > -1 ))
{
v_c ++;
stek_c [v_c] = stek_b [v_b];
v_b --;
}
if (( v_b == -1 ) && ( v_a > -1 ))
{
v_c ++;
stek_c [v_c] = stek_a [v_a];
v_a --;
}
}
while ( v_c > -1 )
{
cout << "Element " << v_c << "steka C = " << stek_c [v_c] << endl;
v_c --;
}
system ( "pause" );
return 0;
}
Не стоит создавать дубликаты тем. Это запрещено правилами форума. Модератор.