Esercizio 1 Vacanze

  • Leggere un file testo di numeri, e:

a) Scrivere i medesimi numeri su di un altro file

b) Scrivere su di un file i numeri compresi in un intervallo (a,b) dove a e b sono numeri digitati da tastiera

c) scrivere su di un altro file la somma, la media il minimo, il massimo dei precedenti numeri

d) scrivere su di un altro file i numeri in ordine inverso

---------------------------------------------------------------------

#include <stdio.h>
FILE *f1;
FILE *f2;
FILE *f3;
FILE *f4;
FILE *f5;
int numeri[100];
int a;
int b;
int n;
int u=0;
int s=0;
int min;
int media;
int i=1;
int max;
void leggiScrivi(){
     f1=fopen("esercizio1.txt","r");
     f2=fopen("copia1.txt","w");
     fscanf(f1,"%d",&n);
     while(n!=999){
                     fprintf(f2,"%d\n",n);
                     fscanf(f1,"%d\n",&n);
     }
     fclose(f1);
     fclose(f2);                     
}
void compresi(){
     f3=fopen("compres.txt","w");
     f1=fopen("esercizio1.txt","r");
     printf("inserisci due numeri interi:");
     scanf("%d %d",&a,&b);
     fscanf(f1,"%d",&n);
     while(n!=999){
                     if((n>a) && (n<b)){
                                fprintf(f3,"%d\n",n);
                                }
     fscanf(f1,"%d",&n);                 
                     }
     fclose(f3);
     fclose(f1);
     }
void somma(){
     f1=fopen("esercizio1.txt","r");
     f4=fopen("somma.txt","w");
     fscanf(f1,"%d",&n);
     n=min;
    n=max;
     while(n!=999){
        if(n<min){
            min=n;
        }
        if(n>max){
            max=n;
    }
                    s=s+n;
                    i++;
                    fscanf(f1,"%d",&n);
                    }
     fprintf(f4,"la somma e:%d\n",s);
     media=s/i;
     fprintf(f4,"la media e:%d\n",media);
    fprintf(f4,"il minimo e: %d\n",min);
    fprintf(f4,"il massimo e:%d\n",max);
     fclose(f1);
     fclose(f4);
     }
void inverso(){
    f1=fopen("esercizio1.txt","r");
    f5=fopen("inverso.txt","w");
    i=0;
    n=0;
    while(n!=999){
        fscanf(f1,"%d",&n);
        numeri[i]=n;
        i++;
    }
    u=i;
    for(i==u;i!=-1;i--){
    fprintf(f5,"%d\n",numeri[i]);
}
fclose(f1);
fclose(f5);

}    

int main()
{
leggiScrivi();
compresi();
somma();
inverso();
}

---------------------------------------------------------------------

Numeri di partenza

testo esercizio

---------------------------------------------------------------------

Esecuzione

Cattura1

---------------------------------------------------------------------

Copia

 

numeri copiati

---------------------------------------------------------------------

Numeri compresi nell’intervallo

 

numeri compresi

---------------------------------------------------------------------

Somma, media, minimo e massimo

somma

Commenti