//использую два масива. TableRevers - это массив изменненый, где повторяются элементы. Table = этот массив заполняет пользователь.
#include <iostream> #include <cmath>
using std::cout; using std::cin; using std::endl;
int main() { int close = -1; //значение для прекращения ввода массива int table[250]; //масив первый int tableRevers[500]; //массив для преобразования int input; //ввод int i = 0; //для счета кол-ва элементов int y = 0; //для заполнения
begin
var n := ReadlnInteger('N=');
var R := new integer[n];
repeat
var a := ReadlnString.ToCharArray;
if a.Length <> N then break;
if a.Where(c -> c = '+').Count = 1 then
Inc(R[a.IndexOf('+')])
until False;
R.Transform(t -> t >= 0.07 * N ? 1 : 0);
R.Numerate.Where(t -> t[1] = 1).Select(t -> t[0]).Println
end.
Пример(окончание ввода - строка длины отличной от N)
N= 5
-+---
--+--
-+---
+
-+---
--+--
-+---
+
+
-+---
1 2 3 5
#include <iostream>
#include <cmath>
using std::cout;
using std::cin;
using std::endl;
int main()
{
int close = -1; //значение для прекращения ввода массива
int table[250]; //масив первый
int tableRevers[500]; //массив для преобразования
int input; //ввод
int i = 0; //для счета кол-ва элементов
int y = 0; //для заполнения
cout << "To close enter: " << close << endl; //уведомление
while(cin >> input, input != close) //заполняем массив
{
table[i] = input;
i++;
}
for(int t = 0; i * 2 > t; t = t + 2) //делаем измененный массив
{
tableRevers[t] = table[y];
tableRevers[t + 1] = table[y];
y++;
}
for(int t = 0; i * 2 > t; t++) //выводис измененный массив
{
cout << endl << tableRevers[t];
}
return 0;
}