Buonasera a tutti, chi mi saprebbe aiutare in questa programmino?!

//Programma che legge N caratteri da tastiera e comunica quante a,b,c,d,e sono state inserite. //

Purtroppo il problema è che, quando mi stampa il numero di caratteri, risultano numeri tutti sballati... eppure penso di aver fatto tutto bene :/

Ecco il codice:


codice:
#include<iostream>
#include <conio.h>


using namespace std;


int main()
{
    int i, n, somma=0, v1[4];
 char    v[n];
    
cout<<"Quanti sono i caratteri che vuoi inserire? " ;
cin>> n;
for(i=0; i<n;i++) 
 {
     v1[i]=0;


 }
 
 
for(i=0; i<n;i++)
{
    cout<<"Inserisci il "<<i+1<<" carattere ";
    cin>> v[i];
    
}


for(i=0; i<n; i++)
{
        switch(v[i])
    {
        case 'a':
            v1[0]= v1[0] +1;
        break;
        
        case 'b':
            v1[1]= v1[1] +1;
        break;
        
        case 'c':
            v1[2]= v1[2] +1;
        break;
        
        case 'd':
            v1[3]= v1[3] +1;
        break;
        
        case 'e':
            v1[4]= v1[4] +1;
        break;
    }
}




cout<<"Sono state inserite " << v1[0] << " a \n";
cout<<"Sono state inserite " << v1[1] << " b \n";
cout<<"Sono state inserite " << v1[2] << " c \n";
cout<<"Sono state inserite " << v1[3] << " d \n";
cout<<"Sono state inserite " << v1[4] << " e \n";


system("pause");
return 0; 
}