No creo que sea necesario el uso de un array, entendiendo que lo que buscas es sólo el mayor valor de n/N.
Una salida a lo que pretendes sería:
Cita:
a se repite 6
c se repite 2
d se repite 1
e se repite 1
m se repite 3
o se repite 5
p se repite 2
r se repite 5
s se repite 4
t se repite 1
u se repite 1
w se repite 2
z se repite 1
a da el mayor valor de ( n = 6 ) / ( N = 5 ) = 1.2
Código C++:
Ver original#include <iostream>
#include <string>
using namespace std;
int main (){
string diccionario[]={"casas","perros","computadoras","arroz","wwomam"};
int acum, acum_mayor, i, j, mayor, letra, tam = sizeof diccionario / sizeof diccionario[0];
float cont=0;
char letras[] = "abcdefghijklmnopqrstuvwxyz";
for( letra = 0 ; letras[letra] ; letra++){
for( i = 0 , acum = 0 ; i < tam ; i++)
for( j =0 ; diccionario[i][j] ; j++) /** Ó: for(j =0;j<diccionario[i].size();j++) **/
if( diccionario[i][j] == letras[letra] )
acum++;
if( acum != 0 ){
cout << letras[letra] << " se repite " << acum << endl;
if ( acum / tam > cont ){
cont = (float) acum/tam;
mayor = letra;
acum_mayor = acum ;
}
}
}
cout << endl<< letras[mayor] << " da el mayor valor de ( n = " << acum_mayor << " ) / ( N = " << tam << " ) = "<< cont << endl;
return 0;
}
Con el valor calculado ya le puedes aplicar la fórmula que quieras.
¡¡¡Saluditos!!!