Cześć. Mam funkcję sortującą sort. Problem jest tego typu, że jeśli sortuję pierwszą tablicę "cards_n" to nie ma problemu, jednak odwołując się potem do funkcji sort przy tablicach "cards_e","cards_s","cards_w" nic się nie dzieje. Co zrobiłem źle?
Tutaj cały kod:
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <string.h>
using namespace std;
void replace(int &a, int &b)
{
int temp=a; a=b; b=temp;
}
void sort(int tab[], int n)
{
for(int j=n-1; j>0; j--)
for (int i=0; i<j; i++)
if (tab[i]>tab[i+1])
replace(tab[i], tab[i+1]);
}
int main()
{
int zarodek,b;
zarodek=time(NULL);
srand(zarodek);
b=rand(); //liczba mieszań
int cards_n[13];
int cards_e[13];
int cards_s[13];
int cards_w[13];
int a[52]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52};
int i;
for(i=0;i<=51;i++)
{
cout<<a[i]<<" "; //wypisanie tablicy PRZED pomieszaniem
}
cout<<"\n";
for(i=0;i<=b;i++) //na podstawie wygenerowaniej liczby mieszamy tablicę b-krotnie
{
random_shuffle(&a[0], &a[52]); //mieszamy tablicę dowolnie
}
for(i=0;i<=12;i++) //podstawianie pierwszych 13 elementów tablicy z kartami do RĘKI N
{
cards_n[i]=a[i];
}
sort(cards_n, 13);
for(i=0;i<=12;i++)
{
cout<<cards_n[i]<<" ";
}
cout<<"\n";
for(i=13;i<=25;i++) //podstawianie kolejnych 13 elementów tablicy z kartami do RĘKI E
{
cards_e[i]=a[i];
}
sort(cards_e, 13);
for(i=13;i<=25;i++)
{
cout<<cards_e[i]<<" ";
}
cout<<"\n";
for(i=39;i<=51;i++) //podstawianie ostatnich 13 elementów tablicy z kartami do RĘKI S
{
cards_s[i]=a[i];
}
sort(cards_s, 13);
for(i=39;i<=51;i++)
{
cout<<cards_s[i]<<" ";
}
cout<<"\n";
for(i=26;i<=38;i++) //podstawianie kolejnych 13 elementów tablicy z kartami do RĘKI W
{
cards_w[i]=a[i];
}
sort(cards_w, 13);
for(i=26;i<=38;i++)
{
cout<<cards_w[i]<<" ";
}
}