¿Cómo convertir el siguiente programa en un pequeño diccionario de salida?
Primero déjame decirte unas palabras. Este programa que escribiste realmente molesta a los lectores. De todos modos, me tomó algo de tiempo descubrir qué estabas haciendo.
No estás ordenando, solo estás generando en orden de diccionario. El orden no ha cambiado, ¿verdad? .
Primero, un error de sintaxis:
else if(replacement[m][n]= temp[n]//" = = "
cuenta 1 ++;
El siguiente paso es una pregunta lógica:
for(int n = 0; n & ltcompare(ch[m], ch[J]); n++)< / p>
if(reemplazar[m][n]& lt; temperatura
{ for(int l = 0; l & ltstrlen(ch[m]); l++)
temp[l]=reemplazar[m][l];
j = m;
romper;
}
else if (replace [m][n]=temporary[n])
count 1++;
Este juicio no implementa la comparación lexicográfica. Por ejemplo, cuando adjk y. Bdkj cuando se usa como entrada, el juicio no se detiene en la diferencia entre A y B, sino que continúa juzgando J y k
Simplemente agregue otra oración
Otros<. p>Romper;
Simplemente hazlo. Al menos tu contraejemplo está bien.
Se puede ver que eres un principiante, al menos en un nivel junior. es digno de elogio
Pero aquí hay algunas sugerencias:
1.
for(int k = 0; k & lt count; k++)
if (exist[k]==true)
Break;
int J = k
No uses k así con el estándar actual. Es for (int I;; I in), que es una variable local y no será válida si hay un bucle
2.
for(int. n = 0; n & ltcompare(ch[m], ch[J]); n++)
La función de comparación no se utiliza aquí. Se ejecutará en cada ciclo si el valor sigue siendo el mismo. Si cambia, esto es un pozo sin fondo. Puedes hundirlo tan profundo como quieras.
3. ¿No es mejor que los números de doble precisión? Ahorre tiempo, energía y espacio.
Eso es todo, continúe ~
Finalmente, recomiendo usar programas estilo C++.
Aunque lo que escribí puede no ser bueno, es un programa C++ real...
Los siguientes programas C++ pueden satisfacer sus necesidades:
# include & ltiostream & gt
# incluir & ltalgoritmo& gt
# incluir & ltstring& gt
# incluir & ltvector & gt
# incluir & ltcctype & gt
Usar espacio de nombres estándar
Comparador booleano (cadena a, cadena b) {
char c1, C2;
for(int I = 0; i<a . length();++i)
{
if((c1 = bajar(a[i]))!= (C2 = bajar(b[I] )){
Devolver c 1 <C2;
}
}
Devolver verdadero
}
int main() {
Vector & lt cadena & gtvec
Temperatura de cadena;
p>
CIN>& gttemp;
while(temp!= "#") {
vec . push _ back(temp);
CIN>& gtTemperature;
}
sort(vec.begin(), vec.end(), comparador);
for(vector & lt; string & gt* const _ iterador ITER = vec . comenzar(); iter & ltvec . ++iter)
{
cout & lt& lt* iter & lt& ltendl
}
devuelve 0;
}