#include #include int collatz(int n); int collatz(int n) { return (n%2==0)?(n/2):((3*n)+1); } int main(int argc, char *argv[]) { int x; if (argc>2) { fprintf(stderr, "Usage: %s []\n", argv[0]); return EXIT_FAILURE; } else { if (argc==1) { printf("Numero: "); scanf("%d", &x); } else sscanf(argv[1], "%d", &x); if (x<=0) { fprintf(stderr, "Il numero immesso dev'essere maggiore di 0.\n"); return EXIT_FAILURE; } else { printf("Sequenza:"); do { printf(" %d", x=collatz(x)); } while (x!=1); printf("\n"); return EXIT_SUCCESS; } } }