5.2 Punteros y arrays
En numerosas ocasiones hay que definir funciones para el tratamiento de arrays que deben devolver más de un valor, sobre todo en arrays bidimensionales o matrices. Veamos algunos ejemplos:
5.2.1 Función tal que dado un array de enteros devuelve el máximo y la posición donde se encuentra. Podemos hacer dos versiones según el máximo se devuelva en el nombre de la función (como en la función 2.1.8):
5.2.2 O los dos argumentos sean de entrada/salida:
5.2.3 Función tal que dada una matriz de números reales y un valor x devuelva la primera posición (fila y columna) donde se encuentra x ó (-1,-1) si no está.
5.2.4 Función tal que dada una matriz de reales devuelve el máximo y el mínimo de sus elementos.
5.2.5 Función que lea desde teclado el número de filas y columnas de una matriz y después lea los elementos de la matriz correspondiente. Proporcionamos dos soluciones casi iguales, en la primera las variables locales numf y numc nos sirven para leer las dimensiones y los bucles y sus valores son copiados en los argumentos punteros nf y nc:
5.2.6 O esta otra solución sin necesidad de definir variables locales, sino trabajando directamente con los punteros nf y nc. Nótese que la sentencia scanf no necesita &:
5.2.7 Usando la misma función intercambia 5.1.2, implemente una función
que reciba una MatrizReal m y dos números de fila f1 y f2, y devuelva m
modificada (no otra matriz, sino la misma m) de forma que los elementos de las
filas f1 y f2 estén intercambiadas. Por ejemplo, si intercambiamos las filas 1
y 3:
No hay comentarios:
Publicar un comentario