Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Hyde en 07 de Febrero 2014, 23:41
-
Me están pidiendo que de un matriz 10 x 10 , donde los números sean al azar, Mostrar solo los valores de la matriz, donde la suma de su fila y columna sea par.
La matriz:
//matriz cargada con numeros aleatorios entre 10 y 99
srand(time(0));
acum=0;
for(x=0;x<10;x++){
for(y=0;y<10;y++){
M[x][y]=rand()%90+10;
acum=acum+ M[x][y];
}
}//for x
//imprimir matriz
printf("\t\tMatriz Original\n\n");
for(x=0;x<10;x++){
printf("\n");
for(y=0;y<10;y++){
printf(" %d ",M[x][y]);
}
}//for x
//---------------------------------------------------------------------
//--- Matriz traspuesta -----
for(x=0;x<10;x++){
for(y=0;y<10;y++){
M2[x][y]=M[y][x];
}
}//for x
printf("\n\n\t\tMatriz Traspuesta\n\n");
for(x=0;x<10;x++){
printf("\n");
for(y=0;y<10;y++){
printf(" %d ",M2[x][y] );
}
}//for x
//----------------------------------------------------
puedo sacar la suma de cada fila y la de cada columna de esta manera:
for(x=0;x<10;x++){
sumafilas=0;
for(y=0;y<10;y++){
sumafilas=sumafilas+M[x][y];
vecF[x]=sumafilas;
}//for x
}//for y
printf("\n\nLa suma de cada fila es:\n\n");
for(x=0;x<10;x++){
printf("\n %d", vecF[x]);
}
for(x=0;x<10;x++){
sumacolum=0;
for(y=0;y<10;y++){
sumacolum=sumacolum+M[y][x];
vecC[x]=sumacolum;
}//for x
}//for y
printf("\n\nLa suma de cada columna es:\n\n");
for(x=0;x<10;x++){
printf("\n %d", vecC[x]);
}
pero como hago para Mostrar solo los valores de la matriz, donde la suma de su fila y columna sea par, no mostrar la suma, sino la fila y las columnas donde la suma sea par. Un saludo!
-
Hola Hyde, pienso que esto pueda valer:
for(x=0;x<10;x++){
for(y=0;y<10;y++){
if((x+y)%2 ==0){
printf("El elemento con fila %d y columna %d tiene valor %d ",x, y, M[x][y] );
}
}
}
En C y C++ el operador % devuelve el resto de una división. Si un número es par al dividirlo por 2 su resto es cero. Así 2%2 vale 0 pero 3%2 vale 1, 4%2 vale cero, etc. así se puede determinar cuándo un valor es par.
Ejemplo (sólo pongo una matriz de 3x3 para no agrandar demasiado):
( 2 4 3
2 5 8
9 7 5)
En la fila 1 y columna 1 tenemos un 2, como 1+1 es par, se mostrará "El elemento con fila 1 y columna 1 tiene valor 2"
En la fila 1 y columna 2 tenemos un 4, pero no se mostrará porque 1+2 es impar
En la fila 1 y columna 3 tenemos un 3, como 1+3 es par, se mostrará "El elemento con fila 1 y columna 3 tiene valor 3"
Y así sucesivamente...
-
Hola César, gracias por responder , pero eso no es precisamente lo que me piden.
En el segundo código que inserte, esta el vector que me suma cada fila y cada columna, entonces si la suma de esa fila da Par, mostrar los valores por ejemplo:
La suma de los valores d la fila 1, dio par, entonces mostrar los valores:
por ejemplo esta matriz 4x4:
2 4 8 6
6 3 7 3
5 6 8 7
2 1 4 8
--------------------------------
la suma de cada fila es:
2+4+8+6=20
6+3+7+3=19
5+6+8+7=26
2+1+4+8=15
--------------------------------
entonces las que la suma dio par, que me imprima solo esas filas de esta manera:
"Las filas donde su suma de sus valores es par son:"
2 4 8 6
5 6 8 7
Espero a verme explicado!
EDITO:: la respuesta que me diste es la correcta, solo lo vi por otro punto de vista!! Gracias!, de todas maneras según como me lo imagine yo, seria buena practica también.