Lotti di merce

lotti.c

/*
  Legge un file di lotti, e ne memorizza ognuno
in una struttura.
*/

#include<stdlib.h>
#include<stdio.h>

struct Lotto {
  float peso;
  int quantita;
};

typedef struct Lotto TipoLotto;

int main() {
  FILE *fd;
  int res;

  TipoLotto l;


			/* apre il file */
  fd=fopen("lotti.txt", "r");
  if(fd==NULL) {
    perror("Errore in apertura del file");
    exit(1);
  }


			/* ciclo di lettura del file */
  while(1) {
    res=fscanf(fd, "%f %d", &l.peso, &l.quantita);
    if( res!=2 ) 
      break;

    printf("Peso=%f Quantita'=%d\n", l.peso, l.quantita);
  }


			/* chiude il file */
  fclose(fd);

  return 0;
}


lottivettore.c

/*
  Legge un file di lotti, memorizzandoli
in un vettore di strutture.
*/

#include<stdlib.h>
#include<stdio.h>

struct Lotto {
  float peso;
  int quantita;
};

typedef struct Lotto TipoLotto;


int main() {
  FILE *fd;
  int res;

  TipoLotto l;
  TipoLotto vett[100];
  int n;
  int i;


			/* apre il file */
  fd=fopen("lotti.txt", "r");
  if(fd==NULL) {
    perror("Errore in apertura del file");
    exit(1);
  }


			/* ciclo di lettura del file */
  n=0;
  while(1) {
    res=fscanf(fd, "%f %d", &l.peso, &l.quantita);
    if( res!=2 ) 
      break;

    vett[n]=l;
    n++;
  }


			/* ciclo di stampa */
  for(i=0; i<=n-1; i++)
    printf("Peso=%f Quantita'=%d\n", vett[i].peso, vett[i].quantita);


			/* chiude il file */
  fclose(fd);

  return 0;
}


lottiordine.c

/*
  Legge un file di lotti, stampa prima
quelli di peso 0.25, poi quelli di peso
0.5 e poi quelli di peso 1.
*/

#include<stdlib.h>
#include<stdio.h>

struct Lotto {
  float peso;
  int quantita;
};

typedef struct Lotto TipoLotto;


int main() {
  FILE *fd;
  int res;

  TipoLotto l;
  TipoLotto vett[100];
  int n;
  int i;


			/* apre il file */
  fd=fopen("lotti.txt", "r");
  if(fd==NULL) {
    perror("Errore in apertura del file");
    exit(1);
  }


			/* ciclo di lettura del file */
  n=0;
  while(1) {
    res=fscanf(fd, "%f %d", &l.peso, &l.quantita);
    if( res!=2 ) 
      break;

    vett[n]=l;
    n++;
  }


			/* stampa i lotti di peso 0.25 */
  printf("Lotti di peso 0.25\n");
  for(i=0; i<=n-1; i++)
    if(vett[i].peso==0.25)
      printf("Quantita'=%d\n", vett[i].quantita);


                        /* stampa i lotti di peso 0.5 */
  printf("Lotti di peso 0.5\n");
  for(i=0; i<=n-1; i++)
    if(vett[i].peso==0.5)
      printf("Quantita'=%d\n", vett[i].quantita);


                        /* stampa i lotti di peso 1 */
  printf("Lotti di peso 1\n");
  for(i=0; i<=n-1; i++)
    if(vett[i].peso==1)
      printf("Quantita'=%d\n", vett[i].quantita);


			/* chiude il file */
  fclose(fd);

  return 0;
}