Cerința
Se dau n numere întregi. Să se insereze între oricare două numere de aceeași paritate media lor aritmetică
Exemplu
Intrare
5
1 21 3 4 8
Ieșire
1 11 21 12 3 4 6 8
Programul meu imi da doar 80 de puncte.
#include
#include
using namespace std;
int n,x,p; int v[101];
void citire(int v[101],int n)
{
for(int i=1;i<=n;i++)
cin>>v[i];
}
void afisare(int v[101],int n)
{
for(int i=1;i<=n;i++)
cout<
}
int paritate(int a)
{
if(a%2==0)
return 1;
else
return 0;
}
void inserare(int v[101],int &n)
{
for(int i=2;i<=n;i++)
if(paritate(v[i])==paritate(v[i-1]))
{
p=i;
for(int j=n+1;j>=p;j--)
v[j+1]=v[j];
v[p]=(v[i]+v[i-1])/2;
n++;
i++;
}
}
int main()
{
cin>>n;
citire(v,n);
inserare(v,n);
afisare(v,n);
return 0;
}
Răspunsuri la întrebare
Răspuns de
0
ai incercat sa modifici dimensiunea vectorului?, fiindca daca vectorul tau ar avea toate elementele de aceeasi paritate, dimensiunea deja va fi depasita de 101 elemente pe care le-ai dat
teofancernautan:
Ai dreptate. Am schimbat si am luat 100 de puncte. Multumesc.
Răspuns de
0
#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
int main()
{
int n , x[101];
cin >> n;
for(int i = 1 ; i <= n ; ++i)
cin >> x[i];
cout << x[1] << ' ';
for(int i = 2 ; i <= n ; ++i)
{
if(abs(x[i - 1] % 2) == abs(x[i] % 2))
cout << (x[i] + x[i - 1]) / 2 << ' ' << x[i] << ' ';
else
cout << x[i] << ' ';
}
return 0;
}
Alte întrebări interesante
Matematică,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă