Hej;
Pisze program ktory posortuje tabelke sportowa wg ilosci punktow. Wszystko mi dzialalo ok, dopoki nie dodalem malych pktow, ktore wazyly by w przypadku gdy dwa zespoly maja te sama ilosc punktow.
Ponizej program:
#include <iostream>
using namespace std;
void sortowanie(int tab[8][4], int n)
{
int i,j,k,l,w,u,x,y;
for(int i=1; i<n; i++)
{
for(int j=n-1; j>=1; j--)
{
if((tab[j][1]<tab[j-1][1])||((tab[j][1]=tab[j-1][1])&&(tab[j][2]>tab[j-1][2])))
{
w=tab[j-1][0];
u=tab[j-1][1];
x=tab[j-1][2];
y=tab[j-1][3];
tab[j-1][0]=tab[j][0];
tab[j-1][1]=tab[j][1];
tab[j-1][2]=tab[j][2];
tab[j-1][3]=tab[j][3];
tab[j][0]=w;
tab[j][1]=u;
tab[j][2]=x;
tab[j][3]=y;
}
}
}
}
void kolejnosc(int tab [8][4])
{
cout<< " Lp." << "|" << " Druzyna " << endl;
cout<<"----------------------------------"<< endl;
for (int k=0;k<8;k++)
{
cout << tab[k][0]<< " | " << tab[k][1]<< " | " << tab[k][2]<< " | " << tab[k][3]<< endl;
}
}
int main()
{
int ile=8;
int tablica [8][4];
tablica[0][0]=1; //nazwa
tablica[0][1]=9; // pkt
tablica[0][2]=11; //mpkt
tablica[1][0]=2; //nazwa
tablica[1][1]=7; // pkt
tablica[1][2]=12; //mpkt
tablica[2][0]=3; //nazwa
tablica[2][1]=9; // pkt
tablica[2][2]=13; //mpkt
tablica[3][0]=4; //nazwa
tablica[3][1]=32; // pkt
tablica[3][2]=14; //mpkt
tablica[4][0]=5; //nazwa
tablica[4][1]=13; // pkt
tablica[4][2]=15; //mpkt
tablica[5][0]=6; //nazwa
tablica[5][1]=33; // pkt
tablica[5][2]=16; //roznica
tablica[5][3]=26; //suma
tablica[6][0]=7; //nazwa
tablica[6][1]=23; // pkt
tablica[6][2]=17; //mpkt
tablica[7][0]=8; //nazwa
tablica[7][1]=9; // pkt
tablica[7][2]=18; //mpkt
cout<< " Lp." << "|" << " Druzyna " << endl;
cout<<"----------------------------------"<< endl;
for (int k=0;k<8;k++)
{
cout << tablica[k][0]<< " | " << tablica[k][1]<< " | " << tablica[k][2]<< " | " << tablica[k][3]<< endl;
}
sortowanie (tablica , ile);
kolejnosc(tablica);
delete [] tablica;
return 0;
}
Nie wiem dlaczego gubią mi się duze punkty - kilka zespołow ma zle skopiowane wartosci.
Dzieki za pomoc