By DePaul Dimadis
Choose your prefered Language: greek_flag uk_flag

Το πρόβλημα της εύρεσης του πλησιέστερου ζεύγους σημείων είναι ένα γεωμετρικό πρόβλημα που αφορά την εύρεση δύο σημείων στο χώρο που βρίσκονται πλησιέστερα το ένα στο άλλο.

Ένα σειριακό αρχείο με όνομα points3D.txt περιέχει σε κάθε γραμμή του τις καρτεσιανές συντεταγμένες ενός σημείου στον τρισδιάστατο χώρο:
π.χ.
18.7 17.9 5.26
10.55 5.37 2.15
110.22 77.44 27.19

Να ορίσετε μια δομή με όνομα point_3D για τη διαχείριση των συντεταγμένων των σημείων αυτών. Τα μέλη της δομής είναι οι τρεις προαναφερόμενοι αριθμοί, τύπου double.
Να οριστεί ένας πίνακας δομών τύπου point_3D, Ν θέσεων (Ν = γνωστό) .
Τα δεδομένα στον πίνακα δομών θα εισάγονται μέσω προσπέλασης του σειριακού αρχείου points3D.txt.
Να θεωρήσετε ως δεδομένο ότι η τιμή του N υπερκαλύπτει το πλήθος των εγγραφών του αρχείου.
Ζητούνται τα παρακάτω (συνάρτηση main( ) ):
1. να γίνει η εισαγωγή των δεδομένων από το αρχείο points3D.txt στον πίνακα δομών σύμφωνα με τα ανωτέρω, ελέγχοντας την ύπαρξη του αρχείου (δείτε τον κώδικα στη συνέχεια) και να βρείτε και να εμφανίσετε το πλήθος των γραμμών του αρχείου που θα περιέχει ο πίνακας δομών.
2. Χρησιμοποιώντας όλα τα στοιχεία του πίνακα δομών να βρείτε και να εμφανίσετε όλα τα ζεύγη σημείων με την ίδια ελάχιστη απόσταση μεταξύ τους, με ακρίβεια υπολογισμού 10-3. Στο τέλος να εμφανίσετε και την τιμή αυτής της ελάχιστης απόστασης.
FILE *fp;
errno_t err;

if (err=(fopen_s(&fp,filename,mode))!=0)
{
printf("error reading file....\n");
exit(1);
}
else // reading from file
{