Sea A una array cuadrada de tamaño nx n. Considere el siguiente programa. cual es la salida esperada?
C = 100 for i = 1 to n do for j = 1 to n do { Temp = A[i][j] + C A[i][j] = A[j][i] A[j][i] = Temp - C } for i = 1 to n do for j = 1 to n do Output(A[i][j]);
(A) La propia array A
(B) Transpuesta de la array A
(C) Sumar 100 a los elementos de la diagonal superior y restar 100 a los elementos de la diagonal de A
(D) Ninguna de las anteriores
Respuesta: (A)
Explicación: Si echamos un vistazo en las sentencias internas de los primeros bucles, podemos notar que las sentencias intercambian A[i][j] y A[j][i] por todos los i y j. Dado que el bucle se ejecuta para todos los elementos, cada elemento A[l][m] se intercambiaría dos veces, una vez para i = l y j = my luego para i = m y j = l. Intercambiar dos veces significa que la array no cambia.
Fuente: https://www.geeksforgeeks.org/data-structures-algorithms-set-34/
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