HalfSort
Se dă un vector cu n elemente numere întregi, n fiind număr par.
Cerinţa
Să se ordoneze crescător elementele din prima jumătate a vectorului și descrescător elementele din a doua jumătate.
Date de intrare
Fişierul de intrare halfsort.in conţine pe prima linie numărul n si pe a doua linie n numere întregi separate prin spaţii.
Date de ieşire
Fişierul de ieşire halfsort.out va conţine pe prima linie cele n elemente ale vectorului, ordonate conform cerinței, separate printr-un spațiu.
Restricţii şi precizări
1 ≤ n ≤ 100, n număr par
valoarea absolută a numerelor de pe a doua linie a fişierului de intrare va fi mai mică decât 1.000.000.000
Exemplu
halfsort.in
6
8 2 9 4 5 7
halfsort.out
2 8 9 7 5 4
Iau doar 80 de puncte cu codul acesta :
#include
using namespace std;
ifstream cin("halfsort.in");
ofstream cout("halfsort.out");
int v[1001],n;
int main()
{ cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
for(int i=1;i<=n/2;i++)
for(int j=i+1;j<=n/2;j++)
if(v[i]>v[j])
{ int aux=v[i]; v[i]=v[j]; v[j]=aux;}
for(int i=n/2;i<=n;i++)
for(int j=i+1;j<=n;j++)
if(v[i]
{ int aux=v[i]; v[i]=v[j]; v[j]=aux;}
for(int i=1;i<=n;i++)
cout<
return 0;
}
for(int i=n/2;i <= n;i++)
for(int j=i+1;j<=n;j++)
if(v[i] { int aux=v[i]; v[i]=v[j]; v[j]=aux;}
valoarea lui i nu trebuie sa inceapa de la n/2+1 ????
Răspunsuri la întrebare
Răspuns de
1
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("halfsort.in");
ofstream g("halfsort.out");
int v[101], n, mij, i, j;
int main()
{
f >> n;
for (i=1; i<=n; ++i)
f >> v[i];
mij=n/2;
for (i=1; i<mij; ++i)
for (j=i+1; j<=mij; ++j)
if (v[j]<v[i]) swap(v[i], v[j]);
for (i=mij+1; i<n; ++i)
for (j=i+1; j<=n; ++j)
if (v[j]>v[i]) swap(v[i], v[j]);
for (i=1; i<=n; ++i)
g << v[i] << " ";
}
Explicație:
asta e varianta mea cu 100..
Alte întrebări interesante
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Limba română,
8 ani în urmă
Chimie,
8 ani în urmă
Matematică,
8 ani în urmă
Fizică,
9 ani în urmă
Fizică,
9 ani în urmă
for(int j=i+1;j <= n/2;j++)
if(v[i]>v[j])
{ int aux=v[i]; v[i]=v[j]; v[j]=aux;}
CRED AI EROARE LA VALOAREA FINALA A LUI i, tr sa fie
for(int i=1;i < n/2;i++)