Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Error con arreglos y funciones - C++

Estas en el tema de Error con arreglos y funciones - C++ en el foro de C/C++ en Foros del Web. Hola gente, como les va? Soy nuevo en esto, espero que disculpen si olvido detalles o cosas esenciales en mi pregunta. Estoy haciendo un programa ...
  #1 (permalink)  
Antiguo 01/11/2013, 17:57
 
Fecha de Ingreso: noviembre-2013
Mensajes: 1
Antigüedad: 10 años, 6 meses
Puntos: 0
Error con arreglos y funciones - C++

Hola gente, como les va? Soy nuevo en esto, espero que disculpen si olvido detalles o cosas esenciales en mi pregunta.

Estoy haciendo un programa que lea una matriz (un arreglo bidimensional), la cual el usuario introduce las dimensiones de dicha matriz, no pudiendo superar cierto limite establecido y luego tipea los valores de la misma. Y luego con una función, calcular un promedio de los elementos en las filas pares.

El leer y promediar serian funciones creadas por mi. Tambien crear una funcion que muestre , es decir que imprima, la matriz.

Todo va muy bien, excepto por algunos errores que no se a que se deben.

Aquí la linea de codigos:

Cita:
#include<iostream>
#include<cmath>
#include<iomanip>

using namespace std;

const int FILMAX = 10;
const int COLMAX = 10;

int fil, col;
int leerdatos (int , int);
int promediopares (int [][]);



int main ()
{
int matriz [][10];

do
{
cout << "Por favor, ingrese las filas que tiene su matriz (Recuerde que no debe exceder las 10 filas)" << endl;
cin >> fil;
cout << "Ahora ingrese las columnas (Recuerde que no debe exceder las 10 columnas)" << endl;
cin >> col;
}
while (fil > FILMAX || col > COLMAX);


leerdatos (fil, col); // En teoria ya tengo los datos leidos y esta funcion me devuelve matriz[fil][col]

//Ahora se quiere hacer un promedio de los elementos de las filas pares

system ("cls");
cout << "Ahora se hara un promedio de los elementos de las filas pares, es decir de las filas: " ;

for (int i = 0; i <= fil; i = i + 2) using obsolet binding at "i"
cout << i << " , " ;

promediopares (matriz[fil][col]); // realiza el promedio de las filas pares
cout << promediopares(matriz[fil][col]);

system ("pause");
return 0;

}


int leerdatos (int fil, int col) // Lee los valores de la matriz
{
int matriz[fil][col];
cout << "Ingrese por favor los valores de su matriz , ingreselos POR COLUMNA" << endl;

for (int i = 0; i < col; i++)
for (int j = 0; j < fil; j++)
cin >> matriz [i][j];

return matriz[fil][col];
}


int promediopares (int matriz[][])
{
int pozo = 0; // En esta variable se acumulan las sumas de cada matriz
int prom = 0 ; // Aqui se almacenara el promedio;
for (int i = 0; i < fil ; i = i + 2)
for (int j = 0; j < col ; j++)
pozo = pozo + matriz[i][j]; "matriz" in

prom = pozo / ( (i/2) * j); // (i/2 * j) representa la cantidad de elementos totales que se utilizaron name lookup for "i"changed for new ISO for scoping

return prom;

}
Bien, el problema esencial que tengo es que, yo necesito que las dimensiones del arreglo las escriba el usuario. pero cuando declaro "matriz [][]" me tira un error :

declaration of 'matriz' as multidimensional array must have bounds for all dimensions except the first


Realmente estoy medio perdido si alguien puede darme una mano o decirme que estoy haciendo mal. Todo funcionaba bien hasta que puse la funcion de promedio. Ahi me tiro los errores!
  #2 (permalink)  
Antiguo 02/11/2013, 04:50
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 11 años, 9 meses
Puntos: 22
Respuesta: Error con arreglos y funciones - C++

Hola niqo7.

Para crear la matriz de forma dinámica:
Código C++:
Ver original
  1. ...
  2. int main()
  3. {
  4.   int **matriz, col, fil;
  5.  
  6.   cout << "Por favor, ingrese las filas que tiene su matriz: ";
  7.   cin >> fil;
  8.   cout << endl << "Ahora ingrese las columnas: ";
  9.   cin >> col;
  10.  
  11.   // dimensionarla
  12.   matriz = new int* [fil];
  13.   for (int i = 0; i < fil; i++) matriz[i] = new int[col];
  14.  
  15.   ...
  16.  
  17.   // liberar memoria
  18.   for (int i = 0; i < col; i++) delete[] matriz[i];
  19.   delete[] matriz;
  20.  
  21.   return 0;
  22. }

Saludos

Etiquetas: arreglos, funcion, funciones, int, matriz, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:37.