Fiind dat un șir de N numere întregi pozitive, să se afișeze pe ecran numerele șirului inițial, cu următoarele modificări:
Numerele pare se vor afla pe primele poziții din șir, în ordine crescătoare. Numerele impare se vor afla după numerele pare, în ordine descrescătoare (a numerelor nu a pozitiilor).
Date de intrare Se vor citi:
Un număr întreg N
Un șir de N numere întregi pozitive
Date de ieșire:
Pe ecran se va afișa șirul modificat.
Restricții N < 1000
Numerele din șir vor fi mai mici sau egale decât 1000 Exemplu
Date de intrare Date de ieșire
5
1 8 7 4 5 4 8 7 5 1
va rog urgent.
Răspunsuri la întrebare
Răspuns de
1
#include <iostream>using namespace std;
int main(){ int a[1001],n,i,j,aux,nrpare=0; cin>>n; for(i=0;i<n;i++) { cin>>a[i]; if(a[i]%2==0) nrpare++; }
for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[j]%2==0 && a[i]%2==1) { aux=a[i]; a[i]=a[j]; a[j]=aux; } for(i=0;i<nrpare-1;i++) for(j=i+1;j<nrpare;j++) if(a[i] > a[j]) { aux=a[i]; a[i]=a[j]; a[j]=aux; } for(i=nrpare;i<n-1;i++) for(j=nrpare+1;j<n;j++) if(a[j]>a[i]) { aux=a[i]; a[i]=a[j]; a[j]=aux; } for(i=0;i<n;i++) cout<<a[i]<<" "; return 0;}
int main(){ int a[1001],n,i,j,aux,nrpare=0; cin>>n; for(i=0;i<n;i++) { cin>>a[i]; if(a[i]%2==0) nrpare++; }
for(i=0;i<n-1;i++) for(j=i+1;j<n;j++) if(a[j]%2==0 && a[i]%2==1) { aux=a[i]; a[i]=a[j]; a[j]=aux; } for(i=0;i<nrpare-1;i++) for(j=i+1;j<nrpare;j++) if(a[i] > a[j]) { aux=a[i]; a[i]=a[j]; a[j]=aux; } for(i=nrpare;i<n-1;i++) for(j=nrpare+1;j<n;j++) if(a[j]>a[i]) { aux=a[i]; a[i]=a[j]; a[j]=aux; } for(i=0;i<n;i++) cout<<a[i]<<" "; return 0;}
sfetcuandrei2002:
iti multumesc
using namespace std;
int main()
//declar variabilele
{ int n,i,j,v[1000],aux,par=0;//citesc nr de pozitii ale sirului
cin>>n;
for(i=0;i<n;i++)
{cin>>v[i];//citesc sirul
if(v[i]%2==0)
par++;}//folosesc un contor"(par)"
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(v[j]%2==0&&v[i]%2==1)
{aux=v[i];
v[i]=v[j];
v[j]=aux;}
for(i=0;i<par-1;i++)
for(j=i+1;j<par;j++)
if(v[i]>v[j])
{aux=v[i];
v[i]=v[j];
v[j]=aux;}
for(i=par;i<n-1;i++)
if(v[j]>v[i])
{aux=v[i];
v[i]=v[j];
v[j]=aux;}
for(i=0;i<n;i++)
cout<<v[i]<<" ";//afisez sirul modificat
return 0;}
for(j=i+1; j<n; j++)
if(v[j]>v[i])
{
aux=v[i];
v[i]=v[j];
v[j]=aux;
}
Alte întrebări interesante
Germana,
8 ani în urmă
Biologie,
8 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă