Să se ordoneze crescător elementele situate pe poziții pare în vector și descrescător elementele situate pe poziții impare.Problema 164 pbinfo. Va rog in c++ si la nivel de clasa a 9-a fara olimpiada
Răspunsuri la întrebare
Răspuns de
5
#include <bits/stdc++.h>
using namespace std;
int v1[105], v2[105], n, i, k1, k2, x, aux;
bool ok;
int main()
{
ifstream f("halfsort2.in");
ofstream g("halfsort2.out");
f >> n;
for(i = 1; i <= n; i ++)
{
f >> x;
if(i % 2 == 1) v1[++ k1] = x;
else v2[++ k2] = x;
}
do
{
ok = true;
for(i = 1; i < k1; i ++)
if(v1[i] < v1[i + 1])
{
aux = v1[i];
v1[i] = v1[i + 1];
v1[i + 1] = aux;
ok = false;
}
} while(!ok);
do
{
ok = true;
for(i = 1; i < k2; i ++)
if(v2[i] > v2[i + 1])
{
aux = v2[i];
v2[i] = v2[i + 1];
v2[i + 1] = aux;
ok = false;
}
} while(!ok);
for(i = 1; i <= k1; i ++)
g << v1[i] << " " << v2[i] << " ";
return 0;
}
using namespace std;
int v1[105], v2[105], n, i, k1, k2, x, aux;
bool ok;
int main()
{
ifstream f("halfsort2.in");
ofstream g("halfsort2.out");
f >> n;
for(i = 1; i <= n; i ++)
{
f >> x;
if(i % 2 == 1) v1[++ k1] = x;
else v2[++ k2] = x;
}
do
{
ok = true;
for(i = 1; i < k1; i ++)
if(v1[i] < v1[i + 1])
{
aux = v1[i];
v1[i] = v1[i + 1];
v1[i + 1] = aux;
ok = false;
}
} while(!ok);
do
{
ok = true;
for(i = 1; i < k2; i ++)
if(v2[i] > v2[i + 1])
{
aux = v2[i];
v2[i] = v2[i + 1];
v2[i + 1] = aux;
ok = false;
}
} while(!ok);
for(i = 1; i <= k1; i ++)
g << v1[i] << " " << v2[i] << " ";
return 0;
}
Alte întrebări interesante
Franceza,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă