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.

El código C++ no tiene errores pero no produce ninguna salida.

Estoy escribiendo código para ordenamiento por selección en c++. No da ningún error cuando lo compilo con el comando g++ main.cpp -o main en Powershell, pero cuando ejecuto el código con ./main, no muestra nada. Lo probé con un programa de “Hola mundo” y funcionó. No sé por qué el código del ordenamiento por selección no está funcionando.

Aquí está el código de ordenamiento por selección:

“`cpp
#include<iostream>

using namespace std;

int main()
{
int n, a[n];

cout << "Ingrese el tamaño del arreglo = ";
cin >> n;

cout << "Ingrese los números: " << endl;

for (int i = 0; i < n; i++)
{
cin >> a[i];
}

for (int i = 0; i < n-1; i++)
{
for (int j = i+1; j < n; j++)
{
if (a[i] > a[j])
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}

for (int b=0; b<n; b++)="" {=""></n;><a[b];
}

return 0;
}
“` }=”” return=”” 0;=”” }=””></a[b];
}

return 0;
}
“`>

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El error en el código es que el array a[n] se declara sin inicializar el tamaño de n, lo que resulta en un comportamiento indefinido. Para solucionarlo, el array debe declararse después de tomar la entrada del tamaño del array n. El código corregido es:

    #include<iostream>
    using namespace std;
    int main()
    {
        int n;
        cout << "Ingresa el tamaño del array = ";
        cin >> n;
        int a[n];
        cout << "Ingresa los números :" << endl;
        for (int i = 0; i < n; i++)
        {
            cin >> a[i];
        }
        for (int i = 0; i < n-1; i++)
        {
            for (int j = i+1; j < n; j++)
            {
                if (a[i] > a[j])
                {
                    int temp = a[i];
                    a[i] = a[j];
                    a[j] = temp;
                }
            }
        }
        for (int b=0; b<n; b++)="" {=""></n;><a[b]<<" ";
        }
        return 0;
    }
    

    ahora, si compilas y ejecutas este código, debería ejecutarse sin errores y ordenar los números de entrada en orden ascendente. “;=”” }=”” return=”” 0;=”” }=”” ahora,=”” si=”” compilas=”” y=”” ejecutas=”” este=”” código,=”” debería=”” ejecutarse=”” sin=”” errores=”” y=”” ordenar=”” los=”” números=”” de=”” entrada=”” en=”” orden=””></a[b]<<” “;
    }
    return 0;
    }

    ahora, si compilas y ejecutas este código, debería ejecutarse sin errores y ordenar los números de entrada en orden ascendente.>

Comments are closed.