You are on page 1of 6

Ejemplo 1 de paso de arrays a funciones en C

++:
función que recibe un array de dos elementos e intercambia el contenido de estos dos
elementos.
#include <iostream>
using namespace std;
void intercambia(int []); //declaración de la función.
//No es necesario poner el nombre del array
int main()
{
int A[2]={3,5};
intercambia(A); //en la llamada sólo se escribe el nombre
//del array, sin corchetes
cout << A[0] << " " << A[1] << endl; //muestra 5 3
system("pause");
}
void intercambia(int a[]) //definición de la función
{
int c;
c=a[0];
a[0]=a[1];
a[1]=c;
}

Ejemplo 2 de paso de arrays a funciones en C++:

En este ejemplo se leen las estaturas de los alumnos de una clase y se realizan con
ellos distintos cálculos.
Se utilizan las siguientes funciones:
Función leer: Lee por teclado las estaturas de los alumnos y las guarda en el array.
Función estatura_media: recibe el array y calcula y devuelve la estatura media.
Función max_min: Calcula y devuelve la estatura mayor y la menor. Recibe el array y
los dos parámetros donde devolver la estatura mayor y la menor.
Función cuantos_mayor_menor_media: Calcula y devuelve cuantos alumnos hay con
estatura mayor que la media y cuántos con estatura menor. Recibe el array de
estaturas, la estatura media y los parámetros donde devolver los resultados.
Función mostrar_resultados: recibe el array y todos los datos calculados y los muestra
por pantalla. Solo el array pasa por referencia (por defecto), los demás parámetros
pasan por valor.
#include <iostream>
#include <iomanip>
using namespace std;

i++) { media = media + a[i].cont_menos). i++) { . i++) { cout << "Alumno " << i+1 << ": ".mayor.menor. menor. for(i=0. double &max. } void max_min(double a[]. } } double estatura_media(double a[]) { double media = 0. cont_menos). system("pause"). int.cont_mas. double &. mostrar_resultados(estaturas. media. double &). max_min(estaturas. int i. i<10. media = estatura_media(estaturas).menor).mayor. int main() { double estaturas[10]. cuantos_mayor_menor_media(estaturas. double. cin >> a[i]. } media = media / 10. double. return media. int &). } void leer(double a[]) { int i.//declaración de funciones void leer(double []). max = min = a[0].media. void cuantos_mayor_menor_media(double [].media. mayor. double. double &min) { int i.cont_mas. double estatura_media(double []). cout << "Lectura de las estaturas de los alumnos:" << endl. i<10. double. i<10. leer(estaturas). for(i=0. int). void max_min(double []. void mostrar_resultados(double []. cont_menos = 0. int cont_mas = 0. for(i=1. int &.

cout << "Hay " << menores_media << " alumnos con estatura ". en la función no es necesario especificar el tamaño del primer índice (filas). i++) { if(a[i]>media) mayores_media++. } Ejemplo 3: pasar una matriz a una función en C++: Cuando se pasa una matriz (array bidimensional) a una función. cout << "Hay " << mayores_media << " alumnos con estatura ". por lo tanto. cout << "Estatura de los alumnos de la clase" << endl. int &mayores_media. i++) { cout << "Alumno " << setw(4) << i+1 << ": " << a[i] << endl. else if(a[i]<media) menores_media++. int mayores_media. double media. int menores_media) { int i. double media. double menor. else if(a[i]<min) min = a[i]. cout << "superior a la media" << endl. cout << "inferior a la media" << endl << endl. cout << fixed << setprecision(2). int &menores_media) { int i. for(i=0. i<10. double mayor. cout << "Estatura media: " << media << endl. } cout << "Mayor estatura: " << mayor << endl. for(i=0. } } void cuantos_mayor_menor_media(double a[]. aparecerán los corchetes correspondientes vacíos. cout << "-----------------------------------" << endl. .if(a[i]>max) max = a[i]. } } void mostrar_resultados(double a[]. cout << "Menor estatura: " << menor << endl. system("cls"). i<10.

int [][MAXCOL]. int main () { int nfilas. int. int. int matriz1[MAXFIL][MAXCOL]. // Lectura de datos de la segunda matriz . int matriz2[MAXFIL][MAXCOL]. const int MAXCOL = 30. do { cout<<"\nIntroduce numero de columnas. int). leerMatriz(matriz1. int). int). #include <iostream> #include <iomanip> using namespace std. ncols). Función leerMatriz que se usará dos veces para leer por teclado los datos de cada matriz. sin corchetes ni índices Programa que lee por teclado los elementos de dos matrices de enteros y crea otra matriz con la suma de las dos.En la llamada a la función a la que se envía el array. nfilas. do { cout<<"\nIntroduce numero de filas. cin >> ncols.ncols. int. int [][MAXCOL]. int matriz3[MAXFIL][MAXCOL]. Función sumarMatrices que realiza la suma de las dos matrices. //declaración de funciones void leerMatriz(int [][MAXCOL]. // Lectura de datos de la primera matriz cout << "\n Introduce datos de la primera matriz ". }while(ncols<=0 or ncols >MAXCOL). }while(nfilas<=0 or nfilas >MAXFIL). Se usarán tres funciones. Función mostrarResultado que se usa tres veces para mostrar por pantalla las tres matrices. void mostrarResultado(int [][MAXCOL]. void sumarMatrices(int [][MAXCOL]. cin >> nfilas. const int MAXFIL = 20. el nombre del array aparecerá solo. Maximo " <<MAXCOL<<": ". Maximo " << MAXFIL << ": ".

int nf. matriz2. cout << "\nmatriz 2:" << endl. system("pause"). int matriz2[][MAXCOL]. col < nc. fila++ ) { for (col=0. ncols). matriz3. cout << "\nmatriz 1:" << endl. // Calcular la suma de las dos matrices sumarMatrices(matriz1. col++) matriz3[fila][col]=matriz1[fila][col] + matriz2[fila][col]. int nc) { int fila. ncols). mostrarResultado(matriz2. } void leerMatriz(int matriz[][MAXCOL]. ncols). // Mostrar el resultado por pantalla system("cls"). nfilas. for (col=0. int nf. ncols). nfilas. for (fila=0. fila < nf. int matriz3[][MAXCOL]. } } } void sumarMatrices(int matriz1[][MAXCOL].cout << "\n Introduce datos de la segunda matriz ". col. nfilas. } } void mostrarResultado(int matriz[][MAXCOL]. fila++ ) { cout << "\nFila : " << fila+1 << endl. mostrarResultado(matriz3. col++) { cout << "Elemento : " << col+1 <<": ". cout << "\nmatriz 3 = matriz1 + matriz2" << endl. ncols). col. int nf. nfilas. leerMatriz(matriz2. col < nc. for (fila=0. int nc) { . cin >> matriz[fila][col]. fila < nf. nfilas. mostrarResultado(matriz1.int nc) { int fila.

} } . col++) cout << setw(4) << matriz[fila][col]. fila++ ) { for (col=0. for (fila=0. col < nc. col. cout << endl.int fila. fila < nf.