buenas que tal, tenia una duda con un ejercicio en el cual ingreso una matriz de m(filas) x n(columnas) y después la recorro, cuento la cantidad de ceros de cada columna y los guardo en otro vector paralelo.
Si la cantidad de ceros de una columna es mayor o igual a 2 guardar y mostrar en el vector la cantidad de ceros que hay en esa columna y si es menor a 2 mostrar solamente 0.
se entiende :huh:??
por favor que alguien me oriente lo mejor posible, gracias!
El codigo lo tengo en c# pero si me explican en java o en c++ o con el algoritmo es suficiente.
Saludos!
Buenas, normalmente soy yo el que pregunto. Pero gracias a este foro he conseguido aprobar Programación I en la universidad así que te contesto cómo sería el algoritmo.
Voy a tratar de hacer un pseudocódigo:
//para recorrer la matriz empiezas en la fila cero y compruebas todas las columnas de la fila cero, se incrementa fila, se vuelven a comprobar las columnas... Teniendo encuenta las dimensiones de la matriz
for(int f=0; f<nFilas; ++f){
for(int c=0; c<nColumnas; ++c){
if(matriz[f][c]==0){
//Guardar en vector[columna] un cero e incrementar a la siguiente posicion.
}
}
}
//al final haces una comprobación y recorres el vector para ver la cantidad de ceros guardada y dependiendo de eso muestras lo que quieras en pantalla
Cita de: dnxs en 13 Septiembre 2015, 21:20 PM
El codigo lo tengo en c# pero si me explican en java o en c++ o con el algoritmo es suficiente.
¿Dónde está?
Ahora, lo que haría fuera lo siguiente:
int mRows = 10; //Cantidad de filas
int nColumns = 10; //Cantidad de columnas
//Inicializas la matriz
int[,] matrix = new int[mRows, nColumns];
//Inicializas el vector con el tamaño igual a la cantidad de columnas
int[] vector = new int[nColumns];
for(int iColumn = 0; iColumn < matrix.GetLength(1); iColumn++)
{
int jCounter = 0; //Para contar la cantidad de ceros en la columna
for(int jRow = 0; jRow < matrix.GetLength(0); jRow++)
{
//Si el valor de la matriz en esa posición es igual a 0, entonces incrementamos
if(matrix[jRow, iColumn] == 0)
jCounter++;
}
//Si el la cantidad de 0 en esa columna es mayor o igual a 2, entonces
//guardamos ese valor
if(jCounter >= 2)
vector[iColumn] = jCounter; //Cada posición del vector representa una
//columna, su valor representa la cantidad de 0 (de acuerdo a la orden
//del ejercicio
}
//Devuelves el vector o lo recorres y lo muestras, depende de lo que
//quieras hacer
Espero hayas entendido, así lo haría yo! Cualquier cosa pregunta!
Salu2s