Untitled
unknown
c_cpp
10 months ago
1.3 kB
5
Indexable
/*
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;
}
Editor is loading...
Leave a Comment