Codice dei programmi nella directory:

///File: speedrun.c
//Autore:XXXX - Data ultima modifica DD/MM/AA //Breve descrizione del programma: programma vuoto #include<stdio.h> void priminumeri(int n) { if (n ==0) return; if (n == 1) printf("1\n"); else if (n>1){ // se n > 1 printf("%d ", n); priminumeri(n - 1); } else // se n < 1 { priminumeri(-n); } } int main() { priminumeri(-23); return 0; }
///(Fine file: speedrun.c)

///File: fattoriale-compatto.c
//Autore: 4^B //Breve descrizione del programma: Gara ricorsione fattoriale pił corto #include<stdio.h> //012345678901234567890123456789012345678901234567890 //int f(int n){if(n<=0)return 1;return n*f(n-1);} // 46 int f(int n){return (n?n*f(n-1):1;}// 34 // Da fare int main() { int i; for(i=0; i < 7; i++) printf("Fattoriale di %d = %d\n",i,f(i)); return 0; }
///(Fine file: fattoriale-compatto.c)

///File: FattorialeECompito.c
// Ricorsione #include <stdio.h> // tempo minimo 7 minuti, tempo medio 11 minuti, ricorsivo 15 secondi /** Scrivi queste 4 funzioni usando la ricorsione* 0) 1+2+3+4+...n somma di n valori 1) 1-2+3-4+5-6.... +n 2) Somma degli n elementi del vettore v[] 3) Quanti elementi di un vettore v[] di dimensione n sono divisibili per k Facoltativi: 4) Scrivere una printN(int n) che visualizza n sullo schermo senza usare printf o fprintf 5) Compattare la funzione fattoriale in modo che stia su una sola riga e con numero di caratteri <= 35 0123456789012345678901234567890123456789 int f(int n){XXXXXXXXXXXXXXXXXXXXX} // soluzione piu' corta ***/ int fattoriale(int n) // tempo 1 minuto per la codifica { if (n <= 0) return 1; return n * fattoriale(n-1); } int fattoriale2(int n) // fattoriale iterativo: tempo per la codifica minimo 7 minuti { int fatt; for(fatt=1; n>0; n--) fatt*=n; return fatt; } int main() { int i; int fatt; for (i=0; i <=8; i++) { fatt=fattoriale(i); printf("Fattoriale di %d = %d\n",i,fatt); } return 0; }
///(Fine file: FattorialeECompito.c)

///File: MCD.c
//Autore:XXXX - Data ultima modifica DD/MM/AA //Breve descrizione del programma: programma vuoto #include<stdio.h> /* renderla sicura (es. caso 0)*/ /* accorciarla ottimizzarla*/ int MCD(int a, int b) { // a >= b if (a % b == 0) return b; // caso base else { int dep = a % b; a = b; b = dep; return MCD(a, b); } } int main() { int a, b; printf("Dammi a e b -->"); scanf("%d %d", &a, &b); printf("Il MCD e' %d \n", MCD(a, b)); return 0; }
///(Fine file: MCD.c)

///File: SommaElementi.c
#include <stdio.h> int SommaElementi(int a[], int n) { if (n < 1) return 0; return a[n - 1] + SommaElementi(a, n - 1); } int ricerca(int a[], int n, int x) { if(n == 0) return -1; else if(n > 0) // da completare } int main() { int a[] = {1, 2, 3, 4, 5,6}; int n = 6; int x = 3; int somma=SommaElementi(a, n); printf("Somma= %d\n", somma); printf("L' elemento %d e' in posizione %d", x, ricerca(a,n,x)); return 0; }
///(Fine file: SommaElementi.c)