Proglab 1 – Calcolo del fattoriale di un numero Il fattoriale di un numero naturale n è definito iterativamente come segue: n! = 1 x 2 x 3 x 4 x ……. x (n-1) x n Ad esempio, 5! = 1 x 2 x 3 x 4 x 5 = 120 #include <stdio.h> #include <stdlib.h> main() { int n, fat, i; fat = 1; printf("digita il numero di cui vuoi il fattoriale: "); scanf("%d", &n); for (i = 1; i <= n; i++) fat = fat * i; printf("il fattoriale di %d e' %d\n\n", n, fat); system ("pause"); return(0); } Prog 2 – Prodotto interi in un intervallo Letti due numeri interi n1 e n2 (n1 n2), stampare il prodotto: n1 * (n1 +1) * (n1 +2) * . . . * n2 Ad esempio, se n1 = 3 e n2 = 6 calcoliamo: 3 x 4 x 5 x 6 = 360 #include <stdio.h> #include <stdlib.h> main() { int i, p, n1, n2; printf("digita n1 e n2: "); scanf(" %d%d", &n1, &n2); p = 1; for (i = n1; i <= n2; i++) p = p * i; printf("il prodotto = %d\n", p); system ("pause"); return(0); } Proglab 3 – Somma numeri interi Vengono letti n numeri interi e viene stampata la loro somma. Ad esempio, se n = 4 e i numeri sono: -5, 3, -23, 7 abbiamo il risultato -18 #include <stdio.h> #include <stdlib.h> main() { int i, x, n, somma=0; printf("quanti numeri ? "); scanf("%d", &n); printf("digita %d numeri interi: ", n); for (i=1; i<=n; i++) { scanf("%d", &x); somma = somma + x; } printf("la somma dei numeri e' %d\n\n", somma); system ("pause"); return(0); } Proglab 4 – Massimo e minimo di interi Letti n numeri interi individuare e stampare il massimo e il minimo. Ad esempio, se n = 6 e i numeri sono: 22, 56, -6, 89, -13 Il max è 89 e il minimo -13 #include <stdio.h> #include <stdlib.h> main() { int n, i, x, max, min; printf ("di quanti numeri vuoi calcolare max e min ? "); scanf(" %d", &n); printf("digita un numero: "); scanf(" %d", &max); min = max; for (i=1; i<n; i++) { printf("digita un numero: "); scanf(" %d", &x); if (x < min) min = x; else if (x > max) max = x; } printf ("il max dei %d numeri e' %d, mentre il min e' %d\n\n", n, max, min); system ("pause"); return (0); } Proglab 5 - Test numero primo con for e flag Legge un intero positivo n e stabilisce se il numero è primo. Ad esempio, se n = 11 la risposta è sì, se n = 88 la risposta è no. #include <stdio.h> #include <stdlib.h> #include <math.h> main() { int i, n, flag; printf("digita un numero intero maggiore di 1: "); scanf(" %d", &n); flag = 1; for (i=2; i < n; i++) { if (n % i == 0) flag = 0; } if (flag == 1) printf("il numero %d e' primo\n\n", n); else printf("il numero %d non e' primo\n\n",n); system ("pause"); return(0); } Proglab 6 - Test numero primo con while Legge un intero n e stabilisce se il numero è primo. #include <stdio.h> #include <stdlib.h> main() { int i, n; printf("digita un numero intero maggiore di 1: "); scanf(" %d", &n); i=2; while (n % i != 0) i++; if (i == n) printf("il numero %d e' primo\n\n", n); else printf("il numero %d non e' primo\n\n",n); system ("pause"); return(0); } Proglab 7 – Formattazione output di un array Viene letto un array di interi e viene stampato con vari formati output: - un numero per riga - un numero per riga in ordine inverso - cinque numeri per riga senza gestire n non multiplo di 5 - cinque numeri per riga con gestione di n non multiplo di 5 #include <stdio.h> #include <stdlib.h> main() { int i, j, n, m, A[100]; printf("\nnumero di elementi di A: "); scanf(" %d", &n); printf("\ndigita gli elementi di A: "); for (i=0; i<n; i++) { scanf(" %d", &A[i]); } for (i=0; i<n; i++) { printf(" \n%d", A[i]); } for (i=n-1; i>=0; i--) { printf(" \n%d", A[i]); } for (i=0; i<n; i=i+5) { printf(" \n\n%6d%6d%6d%6d%6d\n\n", A[i],A[i+1],A[i+2],A[i+3],A[i+4]); } for (i=0; i<n; i++) { if (i % 5 == 0) printf ("\n\n"); printf("%6d", A[i]); } printf ("\n\n"); system ("pause"); return(0); }