Hola...
De nuevo me tienen aqui con otra duda...
Tenia que crear una matriz en donde se orden las filas de mayor a menor para una de 2x3 y este es mi codigo:
#include<stdio.h>
#include<conio.h>
int mat[3][4],i,j,vec1[4],vec2[4],temp,p,q;
main()
{
printf("Trabajo practico 1, ejercicio 8\n");
printf("\nDada una matriz 2x3 de elementos enteros, ordenar todos los");
printf("\nelementos de la matriz(de mayor a menor), comenzando por la");
printf(" primera fila\n\n\n");
for(i=1;i<=2;i++){
for(j=1;j<=3;j++){
printf("Elemento (%d,%d): ",i,j);
scanf("%d",&mat[i][j]);
}
}
for(j=1;j<=3;j++){
vec1[j]=mat[1][j];
}
printf("\n\nElementos de la fila 1: ");
for(j=1;j<=3;j++){
printf("%d ",vec1[j]);
}
for(i=1;i<=3;i++){
for(j=i+1;j<=3;j++){
if(vec1[i]<vec1[j]){
temp=vec1[i];
vec1[i]=vec1[j];
vec1[j]=temp;
}
}
}
for(j=1;j<=3;j++){
vec2[j]=mat[2][j];
}
printf("\nElementos de la fila 2: ");
for(j=1;j<=3;j++){
printf("%d ",vec2[j]);
}
printf("");
for(i=1;i<=3;i++){
for(j=i+1;j<=3;j++){
if(vec2[i]<vec2[j]){
temp=vec2[i];
vec2[i]=vec2[j];
vec2[j]=temp;
}
}
}
printf("\n\n\n");
printf("Elementos ordenados da la fila 1: ");
for(i=1;i<=3;i++){
printf("%d ",vec1[i]);
}
printf("\n");
printf("Elementos ordenados de la fila 2: ");
for(i=1;i<=3;i++){
printf("%d ",vec2[i]);}
getch();
return(0);
}
Pero ahora me pidieron que creara un matriz de nxm y que ordenara tanto sus filas como sus columnas de mayor a menor, supongo ue solo tengo que generalizar paro no se como.. ya que soy nuevo en esto y la verdad sacar el code anterior me costo mucho, ojala me ayuden
Por favor, guión correctamente. (indent correctly the code)
No se puede entender esto.
Ejemplo:
for (i=1; i <= 2; i++)
{
for(j=1; j <= 3; j++)
{
printf("Elemento (%d,%d): ", i, j);
scanf("%d", &mat[i][j]);
}
}
Cuando se esta empezando, es bueno hacer esto..
Bueno solo ya tienes los tamaños de la fila por columna ocupariamos otra matriz asi una igual a la otra organizarla una por filas y la otra por columnas, y es casi el mismo procedimiento solo Debes cambiar algunas partes al hacer los cambios.
Y tambien como te comentaron deberias tener un poco mejor organizado el codigo jeje
Aqui dejo como yo lo hice
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int fila, columna;
//Preguntamos la cantidad de Filas & Columnas de la Matriz
printf("Filas: ");
scanf("%d", &fila);
printf("Columnas: ");
scanf("%d", &columna);
//Creamos 2 matrices del mismo tamaño, 1 para organizarla mediante filas y la otra por columnas
int matriz[fila][columna];
int matriz0[fila][columna];
for(int i = 0; i < fila; i++)
{
for(int j = 0; j < columna; j++)
{
//Pedimos los datos y los ingresamos a ambas matrices
printf("Elemento (%d,%d): ", i, j);
scanf("%d", &matriz[i][j]);
matriz0[i][j] = matriz[i][j];
}
}
//Mostramos los datos por Fila
for(int i = 0; i < fila; i++)
{
printf("\nElemntos Fila %d: ", (i+1));
for(int j = 0; j < columna; j++)
{
printf("%d ", matriz[i][j]);
}
}
//Recorremos la matriz para organizarla por filas
int temp;
for(int i = 0; i < fila; i++)
{
for(int j = 0; j < columna; j++)
{
for(int x = 0; x < columna; x++)
{
if(matriz[i][j] < matriz[i][x])
{
temp = matriz[i][j];
matriz[i][j] = matriz[i][x];
matriz[i][x] = temp;
}
}
}
}
printf("\n\n");
//Mostramos las filas ya organizadas
for(int i = 0; i < fila; i++)
{
printf("\nElementos Fila %d: ", (i+1));
for(int j = 0; j < columna; j++)
{
printf("%d ", matriz[i][j]);
}
}
//Mostramos los datos por columnas
for(int j = 0; j < columna; j++)
{
printf("\nColumna %d: ", (j+1));
for(int i = 0; i < fila; i++)
{
printf("%d ", matriz0[i][j]);
}
}
//Organizamos los datos de las columnas
for(int j = 0; j < columna; j++)
{
for(int i = 0; i < fila; i++)
{
for(int x = 0; x < fila; x++)
{
if(matriz0[i][j] < matriz0[x][j])
{
temp = matriz0[i][j];
matriz0[i][j] = matriz0[x][j];
matriz0[x][j] = temp;
}
}
}
}
printf("\n\n");
//Mostramos los datos por columnas ya organizadas
for(int j = 0; j < columna; j++)
{
printf("\nColumna %d: ", (j+1));
for(int i = 0; i < fila; i++)
{
printf("%d ", matriz0[i][j]);
}
}
cin.get();cin.get();
}
OK, ya lo probe, modifique pequeñas cositas para que me compilara... tal vez es por el IDE que uso... pero MUCHAS GRACIAS!!!
Me ayudaste bastante...
Imaginate si el anterior me costo trabajo... no imaginas como estaba sufriendo con esto...
jejeje...
Pero gracias de nuevo!!!