Tak więc, jestem gimnazjalistą stąd moje myślenie może być dość dziwne, ale moim zdaniem program został napisany poprawnie, lecz wysypuje się po wprowadzeniu pierwszego ciągu na którym program ma operować.
Chodzi o zadanie "parzyste i nieparzyste" ze SPOJ'a
Treść:
PP0602A - Parzyste nieparzyste
Wczytaj ciąg liczb. Następnie wypisz wczytane liczby w taki sposób, aby najpierw pojawiły się te, które wystąpiły na pozycjach parzystych, a następnie te, które wystąpiły na pozycjach nieparzystych; z zachowaniem pierwotnej kolejności w obrębie obu grup. Numerujemy od 1.
Wejście
Najpierw t - liczba testów. Następnie dla każdego testu liczba n i n liczb, n <= 100.
Wyjście
Dla każdego testu n liczb w opisanym porządku.
Przykład
Wejście:
2
4 1 2 3 5
3 9 8 7
Wyjście:
2 5 1 3
8 9 7
UWAGA KOD ŹRÓDŁOWY (nie chce psuć zabawy)
kod źródłowy całego programu (niestety muszę wkleić cały, gdyż chciałbym uzyskać odpowiedź jak zrobić to "dobrze")
#include <iostream>
#include <math.h>
using namespace std;
int ile, a, c;
int main()
{
cin >> ile;
for (int i=1 ; i<=ile; i++)
{
cin >> a;
int tab[100];
for (int x=0; x<a ; x++)
{
cin >> c;
tab[x]=c;
}
int parzyste [100];
int nieparzyste [100];
int b,n;
for (int x=0; x<a; x++)
{
if( (tab[x]/2)-(floor(tab[x]/2)) == 0 )
{
b=0;
tab[x]=parzyste[b];
b++;
}
else if( (tab[x]/2)-(floor(tab[x]/2)) != 0 )
{
n=0;
tab[x]=nieparzyste[n];
n++;
}
}
for (int z=0 ; z<=b ; z++) cout << parzyste[z];
for (int h=0 ; h<=n ; h++) cout << nieparzyste[h];
}
return 0;
}
Z góry dziękuję za pomoc i poświęcony czas! ;)