Untitled

 avatar
unknown
c_cpp
2 months ago
1.6 kB
3
Indexable
/*
Si consideri un file binario punti.bin che contiene le coordinate di una serie di lunghezza indefinita di punti
rappresentati con il seguente tipo strutturato
typedef struct {
int x, y;
} punto_t;
Scrivere un programma che apre il file punti.bin e calcola e visualizza le coordinate del vertice in basso a sinistra e
del vertice in alto a destra del rettangolo che racchiude tutti i punti salvati nel file. Gestire visualizzando un
messaggio a video i casi di errore di apertura del file o di file vuoto.
*/

// fread e fwrite

#include <stdio.h>

typedef struct {
    int x, y;
} punto_t;

int main(int argc, char *argv[])
{
    
   FILE *fp = fopen("punti.bin", "rb");
   if(fp != NULL)
   {
    punto_t punto;
    int min_x, min_y, max_x, max_y;

    if(fread(&punto, sizeof(punto_t), 1, fp) == 1){

        min_x = max_x = punto.x;
        min_y = max_y = punto.y;

        while(fread(&punto, sizeof(punto_t), 1, fp) == 1){
            if(punto.x < min_x){
                min_x = punto.x;
            }
            if(punto.x > max_x){
                max_x=punto.x;
            }
            if(punto.y < min_y){
                min_y = punto.y;
            }
            if(punto.y > max_y){
                max_y = punto.y;
            }
        }

        fclose(fp);

        printf("Vertice in basso a sinistra: (%d, %d)\n", min_x, min_y);
        printf("Vertice in alto a destra: (%d, %d)\n", max_x, max_y);

    }else{
        printf("Il file e vuoto\n");
        fclose(fp);
    }


   }else{
    printf("Errore paertura file");
   }
  


    return 0;

}
Leave a Comment