Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- #include<stdlib.h>
- #include<math.h>
- /*
- KAZDY KOMENTARZ ODNOSI SIE DO ZAWARTOSCI PONIZEJ KOMENTARZA
- */
- /*
- odleglosc od siebie dwoch punktow w przestrzeni trojwymiarowej
- wczytuje wspolrzedne 2 punktow kazdy jako tablica jednowymiarowa 3 elementowa(x,y,z)
- zwraca odleglosc float
- */
- float odl(int *punkt, int *punkt2){
- int liczba=0;
- liczba=pow((float)punkt[0]-punkt2[0],2)+pow((float)punkt[1]-punkt2[1],2)+pow((float)punkt[2]-punkt2[2],2);
- return sqrt((float)liczba);
- }
- int main(void){
- //zmienna punkt, przechowuje wspolrzedne wszystkich punktow przestrzeni int
- int **punkt;
- //tablica przechowujaca wszystkie odlegosci punktow przestrzeni
- float *sort;
- //schowek przechowuje wartosc float, do bubble sort
- float schowek;
- //zmienna przechowujaca ilosc testow do wykonania
- int tests;
- //zmienne pomocnicze, liczniki w petlach
- int a,b,c;
- //OZNACZA ILOSC WSZYSTKICH ODLEGLOSCI PUNKTOW OD SIEBIE
- int liczba=0;
- //WCZYTUJE ILOSC TESTOW
- scanf("%d",&tests);
- punkt=(int**)malloc(sizeof(**punkt)*tests);
- /*
- ALOKOWANIE PAMIECI DLA TESTS-ELEMENTOW
- WCZYTYWANIE WSPOLRZEDNYCH KAZDEGO PUNKTU
- LICZENIE ILOSCI MOZLIWYCH ODLEGLOSCI
- */
- for(a=0;a<tests;a++){
- punkt[a]=(int*)malloc(sizeof(*punkt)*3);
- for(b=0;b<3;b++)scanf("%d",&punkt[a][b]);
- liczba+=a;
- }
- /*
- ALOKACJA PAMIECI DLA TABLICY WSZYSTKICH ODLEGLOSCI
- ZAPISYWANIE DO TABLICY TESTS WSZYSTKICH ODLEGLOSCI
- */
- c=0;
- sort=(float*)malloc(sizeof(*sort)*liczba);
- for(a=0;a<tests-1;a++){
- for(b=a+1;b<tests;b++){
- sort[c]=odl(punkt[a],punkt[b]);
- c++;
- }
- }
- /*
- SORTOWANIE BABELKOWE W TABLICY ODLEGLOSCI PUNKTOW
- WCZYTUJE TABLICE FLOAT, ZWRACA POSORTOWANA TABLICE FLOAT
- LICZBA-WIELKOSC TABLICY SORT
- */
- c=liczba-1;
- while(c>1){
- for(a=0;a<c;a++){
- if(sort[a]>sort[a+1]){
- schowek=sort[a+1];
- sort[a+1]=sort[a];
- sort[a]=schowek;
- }
- }
- c--;
- }
- /*
- WYSWIETLA TABLICE POSORTOWANYCH ELEMENTOW
- */
- for(a=0;a<liczba;a++)printf("%.2f\n",sort[a]);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement