Calcular la moda de un vector de caracteres
Publicado por Olga Maria (3 intervenciones) el 05/12/2020 17:53:28
Valora esta pregunta


-1
#include <iostream>
using namespace std;
struct FrecuenciaCaracter
{
char caracter;
int frecuencia;
};
void modaVector(FrecuenciaCaracter& c, char v[], int n);
int main()
{
char *v, c;
int i = 0;
FrecuenciaCaracter f;
cout << "\nCaracteres (# para terminar): ";
cin.get(c);
while (c != '#')
{
v[i++] = c;
cin.get(c);
}
modaVector(f, v, i);
cout << "\nCaracter: " << f.caracter;
cout << "\nFrecuencia: " << f.frecuencia;
cout << endl;
return 0;
}
void modaVector(FrecuenciaCaracter& c, char v[], int n)
{
c.frecuencia = 0;
for (int i = 0; i < n; i++)
{
int temp = 0;
for (int j = 0; j < n; j++)
{
if (v[i] == v[j])
temp++;
}
if (temp > c.frecuencia)
{
c.frecuencia = temp;
c.caracter = v[i];
}
}
}
#include <iostream>
#include <cctype>
using namespace std;
void imprimir(const char v[], int n);
int main()
{
const int Sz = 1000;
char c;
char cadena[Sz];
char codigo[Sz];
bool blanco = false;
cout << "\nCadena: ";
cin.get(c);
int i = 0, k = 0;
while (c != '#')
{
cadena[i] = c;
if (i == 0) codigo[k++] = cadena[i];
if (isspace(cadena[i]))
{
blanco = true;
if (i > 1 && !isspace(cadena[i - 2]))
codigo[k++] = cadena[i - 1];
}
if (isalpha(c) && blanco)
{
codigo[k++] = cadena[i];
blanco = false;
}
i++;
cin.get(c);
}
cout << "\nCodigo: ";
imprimir(codigo, k);
cout << endl;
return 0;
}
void imprimir(const char v[], int n)
{
for (int i = 0; i < n; i++)
cout << v[i];
}