es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué es que mi código sólo muestra el último elemento en el arreglo aunque debería estar mostrando el elemento con la mayor cantidad de caracteres?

Incluir

Incluir

Incluir

usando namespace std;

vector crearvector() {
vector palabras;
cadena nombres;
cout << “Ingrese 5 palabras diferentes:” << endl;
para (int i = 0; i < 5; i++) {
cin >> nombres;
palabras.push_back(nombres);
}
volver (palabras);
}
nulo mostchar(vector palabras) {
cadena w1 = palabras[0];
cadena palabra_más_grande;
para (int i = 1; i < 5; i++) {
si(palabras[i] > w1) {
palabra_más_grande = palabras[i];
}
}
cout << “La palabra más grande es:” << palabra_más_grande;
}

int main()
{
vector palabras;
cadena nombres;
palabras = crearvector();
mostchar(palabras);
}

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema con el código actual es que no está inicializado correctamente para comparar la primera palabra con el resto de las palabras en el vector.

    Para solucionar esto, podemos inicializar la variable ‘largestword’ con la primera palabra en el vector antes de comenzar el bucle for. Además, necesitamos actualizar ‘w1’ para que sea la palabra actual que se está comparando en cada iteración del bucle for.

    Por lo tanto, la función actualizada ‘mostchar’ debería lucir como sigue:

    void mostchar(vector<string> words) {
        string largestword = words[0];
        string w1;
        for (int i = 1; i < 5; i++) {
            w1 = words[i];
            if (w1 > largestword) {
                largestword = w1;
            }
        }
        cout << "La palabra más grande es: " << largestword;
    }
    

    Con estos cambios, el programa debería imprimir la palabra más grande correcta en el vector.

Comments are closed.