Cerința

Se dau n numere întregi. Să se insereze între oricare două numere de aceeași paritate media lor aritmetică.


Date de intrare

Programul citește de la tastatură numărul n, iar apoi n numere întregi, separate prin spații.


Date de ieșire

Programul va afișa pe ecran elementele noului șir de numere obținut după inserarea elementelor, separate prin câte un spațiu.


Restricții și precizări

1 ≤ n ≤ 100

-1.000.000.000 ≤ elementele șirului ≤ 1.000.000.000


Exemplu

Intrare


5

1 21 3 4 8

Ieșire


1 11 21 12 3 4 6 8



Codul meu, la care am doar 80 de puncte:
#include
using namespace std;
int main()
{
long n, v[1000];
cin >> n;
for (int i = 0; i > v[i];
}
for (int i = 0; i = i + 1; j--)
{
v[j + 1] = v[j];
}
v[i + 1] = ma;
i++;
}
}
for (int i = 0; i < n; i++)
{
cout << v[i] << ' ';
}
return 0;
}

Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int main() {

int n, v[101], new_v[101], x = 1;

cin >> n;

for (int i = 1; i <= n; ++i) {

 cin >> v[i];

}

for (int i = 1; i <= n; ++i) {

 if ((v[i] % 2 == 0 && v[i + 1] % 2 == 0) || (v[i] % 2 != 0 && v[i + 1] % 2 != 0)) {

  new_v[x] = v[i];

  ++x;

  new_v[x] = (v[i] + v[i + 1]) / 2;

  ++x;

 } else {

  new_v[x] = v[i];

  ++x;

 }

 

}

for (int i = 1; i < x - 1; ++i) {

 cout << new_v[i] << " ";

}

return 0;

}

Explicație: