Witajcie!
Mam problem dotyczący zadania z sortowaniem punktów wg odległości od środka. Wyskakuje mi błędna odpowiedź. Ktoś ma jakiś pomysł?
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int t, //ilosc testow
n, //ilosc punktow w zestawie
x,
y;
float ftemp;
string stemp;
cin>>t;
for(int k=0; k<t; k++)
{
cin>>n;
string *punkty = new string[n];
//generowanie tablicy
float ** tab = new float *[n];
for(int i=0; i<n; i++)
tab[i] = new float [3];
for(int i=0; i<n; i++)
{
cin>>punkty[i]>>tab[i][0]>>tab[i][1];
x=tab[i][0];
y=tab[i][1];
tab[i][2] = pow(pow(abs(x), 2)+(pow(abs(y), 2)), 0.5);
//cout<<"Dlugosc wynosi: "<<tab[i][2]<<endl;
}
for(int r=1; r<n;r++)
{
for(int t=r-1; t<n; t++)
{
if (tab[t][2]>tab[r][2])
{
ftemp = tab[t][2];
tab[t][2]=tab[r][2];
tab[r][2]=ftemp;
stemp = punkty[t];
punkty[t] = punkty[r];
punkty[r] = stemp;
}
}
}
for(int i=0; i<n; i++)
{
cout<<punkty[i]<<" "<<tab[i][0]<<" "<<tab[i][1]<<endl;
}
//usuwanie tablicy
for(int i=0; i<n; i++)
delete [] tab[i];
delete [] tab;
delete [] punkty;
cout<<endl;
}
return 0;
}
created
last reply
- 6
replies
- 951
views
- 4
users
- 2
likes
- 1
link