Informatică, întrebare adresată de infomatrix, 9 ani în urmă

AM NEVOIE DE AJUTOR VA ROG
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 naturale, 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
Explicație
Între 1 și 21 se inserează numărul (1+21)/2=11. Între 21 și 3 se inserează numărul (21+3)/2=12. Între 3 și 4 nu se inserează nimic, pentru că au paritate diferită. Între 4 și 8 se inserează numărul 6.


mickey213: poti sa imi spui numele problemei de pe pbinfo?...stiu ca am facut-o, dar nu o gasesc :)))
infomatrix: imediat
infomatrix: #1365
infomatrix: acceasi_paritate
infomatrix: ma poti ajuta?

Răspunsuri la întrebare

Răspuns de radutanasa86
3
#include <bits/stdc++.h>
#define nmax 105
using namespace std;
int n,pozitii[nmax],a[nmax],b[nmax];
int main()
{
    int i,j,lg;
    cin>>n;
    for(i=1;i<=n;i++)
        cin>>a[i];
    for(i=1;i<n;i++)
        if(abs(a[i]-a[i+1])%2==0)
            pozitii[i]=1;
    j=1;
    lg=0;
    while(j<=n)
    {
         b[++lg]=a[j];
        if(pozitii[j]==1)
            b[++lg]=(a[j]+a[j+1])/2;
        j++;
    }
    for(i=1;i<=lg;i++)
        cout<<b[i]<<" ";
    return 0;
}


Răspuns de express
7
Ai aici o sursa C++ la fel de eficienta...dar putin mai scurta. Succes!
#include <bits/stdc++.h>
using namespace std;
int n, i, x, y, ma, s;
int v[105];
int main()
{
    cin >> n;
    for(i = 1; i <= n; i ++)
        cin >> v[i];
    for(i = 1; i < n; i++)
    {
        cout << v[i] << " ";
        x = abs(v[i]);
        y = abs(v[i + 1]);
        s = x + y;
        ma=(v[i] + v[i + 1]) / 2;
        if(s % 2 == 0) cout << ma << " ";
    }
    cout << v[n];
    return 0;
}



infomatrix: Mulțumesc
infomatrix: As vrea totusi sa stiu cu ce pot inlocui functia abs? Nu am facut-o inca
express: e vorba de valoarea absoluta ... modulul unui numar
Alte întrebări interesante