ragazzi ho un problema con questo programma che viene controllato dall'istruzione "switch" che deve permettere la scelta di quali operazioni svolgere (somma, media, ricerca massimo e minimo) ma nn mi funziona....

codice:
#include <stdio.h>
#define dim 10

int somma (int a[], int n);
float med (int a[], float n);
int max (int a[], int n);
int min (int a[], int n);


int main(){
    int a[dim];
    float n; 
    int i, r;
    int scelta;
    
    printf("premere 1 per eseguire una somma \n premere 2 per eseguire una media \n premere 3 per cercare il valore massimo \n premere 4 per cercare il valore minimo \n scelta = ");
    scanf("%d", &scelta);
    
    printf("inserire dimensioni vettore = ");
    scanf("%f", &n);
    
    for(i=0;i<n;i++){
    printf("a[%d] = ", i);
    scanf("%d", &a[i]);
    }
    
    swtich(scelta){
                     
    case 1: printf("la somma degli elementi del vettore e' %d\n", somma(a, n)); break:
    case 2: printf("la media e' %f\n", med (a, n)); break;
    case 3: printf("il valore massimo e' %d\n", max (a, n)); break;
    case 4: printf("il valore minimo e' %d\n", min (a, n)); break;
    }
    system("pause");
    return 0;
}
         

int somma(int a[], int n){
    int i, sum;
    
    sum=0;
    
    for(i=0;i<n;i++){
    sum=sum+a[i];
    }
    return sum;
}

float med (int a[], float n){
    int i, sum;
    float med;
        
    sum=0;
    for(i=0;i<n;i++){
    sum=sum+a[i];
    }
    med=sum/n;

    return med;
}

int max(int a[], int n){
    int max, i;
      
      max=a[0];    
    for(i=1;i<n;i++){
       if(a[i]>max)
       max=a[i];
       }
       return max;
}

int min (int a[], int n){
    int min, i;
    
    min=a[0];
    for(i=1;i<n;i++){
      if(a[i]<min)
      min=a[i];
      }
      return min;
}