PUERTA | GATE-CS-2017 (Conjunto 2) | Pregunta 47

Considere el siguiente fragmento de código de un programa en C. Suponga que swap(&x, &y) intercambia los contenidos de x e y.

int main()
{
    int array[] = {3, 5, 1, 4, 6, 2};
    int done = 0;
    int i;

    while (done == 0)
    {
        done  = 1;
        for (i = 0; i <= 4; i++)
        {
            if (array[i] = 1; i--)
        {
            if (array[i] > array[i-1])
            {
                swap(&array[i], &array[i-1]);
                done = 0;
            }
        }
    }

    printf("%d", array[3]);
}

La salida del programa es _____.
Nota: Esta pregunta apareció como tipo de respuesta numérica.
(A) 1
(B) 2
(C) 3
(D) 4

Respuesta: (C)
Explicación: Después de la ejecución del ciclo for, el contenido de la array:

Primera vez: 5 3 4 6 2 1
Segunda vez: 6 5 4 3 2 1
Tercera vez: 6 5 4 3 2 1
Ahora, cuando el bucle while se ejecute de nuevo, done = 1 y el primer y segundo bucle for si la condición no se cumple .
Por lo tanto, al final, el valor de arr[3] = 3, la opción C es correcta.

Mira esto para entender más:

#include <stdio.h>
void swap(int *t, int *x)
{
    int m;
    m = *t;
    *t = *x;
    *x = m;
}
  
int main()
{
    int array[] = {3, 5, 1, 4, 6, 2};
    int done = 0;
    int i;
  
    while (done == 0)
    {
        done  = 1;
        for( i = 0; i <= 4; i++)
        {
            if(array[i] < array[i+1])
            {
                swap(&array[i], &array[i+1]);
                done = 0;
            }
        }
        for (i = 5; i >= 1; i--)
        {
            if( array[i] > array[i-1])
            {
                swap(&array[i], &array[i-1]);
                done = 0;
            }
        }
    }
  
    printf("%d", array[3]);
}

Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *