/* Claudio Sartori - Universita' di Bologna - 2005 * * Legge numeri da input e scrive su file in base alla differenza rispetto al precedente * * Struttura dati: * * Algoritmo: * - acquisisce nome del file * - apre il file in lettura e in caso di errore termina */ #include <stdio.h> #include <math.h> #define NF "valori.txt" // nel caso sostituire con dich.di variabile e input #define N 3 // numero di valori da scrivere #define M 10 // percentuale di eccesso che fa scattare la scrittura int main(){ int ns; /*numero scritti */ float x, /*valore attuale letto dal file*/ xp; /*valore precedente letto dal file*/ FILE *f; if((f=fopen(NF, "w"))==NULL){ printf("Impossibile aprire il file %s\n",NF); return 1; } ns=0; printf("Inserire primo numero> "); scanf("%f",&xp); while(ns<N){ // ripeti lettura finche' non finisce il file printf("Inserire numero "); scanf("%f", &x); printf("%f %f\n",(x-xp)/xp*100, (xp-x)/xp*100); if (abs((x-xp)/xp*100)>M){ // test di scrittura ns++; fprintf(f, "%f\n", x); } xp=x; } printf("Fine Lavoro, scritti %d numeri\n", ns); return 0; }