Untitled
/* Scrivere un programma che apre un file di testo il cui nome è ricevuto come argomento da riga di comando e contenente una serie di lunghezza indefinita di numeri interi. Il programma stampa a video tutti quei numeri della sequenza per cui la cifra delle decine (se esiste) è il doppio della cifra delle decine del numero che lo precede. Esempio: Sequenza nel file: 1 43 484 113 521 446 55. Output a video: 484 521 446 */ #include <stdio.h> #include <string.h> int estraidecine(int n) { return (n/10) %10; } int main(int argc, char *argv[]) { if(argc == 2) { FILE *fp = fopen(argv[1], 'r'); if(fp) { int precedente, corrente; if(fscanf(fp, "%d", &precedente) != 1) { fclose(fp); return 0; } while(fscanf(fp, "%d", &corrente) == 1) { int dec_prec = estraidecine(precedente); int dec_corr = estraidecine(corrente); if(dec_corr == dec_prec*2) { printf("%d ", corrente); } precedente = corrente; } fclose(fp); }else{ printf("Errore apertura file"); } }else{ printf("Numero argomenti sbagliato"); } return 0; }
Leave a Comment