Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Ayuda con este programa en C, por favor! :c

  • Autor de tema Autor de tema zvok
  • Fecha de inicio Fecha de inicio

zvok

Becerro
Desde
29 Ene 2012
Mensajes
13
Tengo este código, mi objetivo es aplicar ordenamiento por selección directa sobre una matriz, por ejemplo doy esta matriz:
5 6 1
7 9 3
2 4 8
y me imprime:
3 6 1
7 8 5
2 4 9
y quiero que me quede así:
1 2 3
4 5 6
7 8 9
----------
Este es el código
-----------
#include <stdio.h>

int main()
{
int m['f']['c'];
int f,c,aux,loi,loj,min;
int i,j,x,y,n;
char resp;
do{

printf("Indica numero de filas\n");
scanf("%d",&f);
printf("Indica numero de columnas\n");
scanf("%d",&c);
printf("Ingresa los valores\n");

for(i = 0; i < f; i++)
for(j = 0; j < c; j++)
{
scanf( "%d", &m[j] );
}

printf("Los elementos del arreglo son:\n");
for(i = 0; i < f; i++)
{
for(j = 0; j < c; j++)
printf("%d ", m[j]);
printf("\n");
}

//ordenamiento//

for(i=0;i<f-1;i++)
for(j=0;j<c-1;j++)
{
min=m[j];
loi=i;
loj=j;
for(x=i+1;x<f;x++)
for(y=i+1;y<c;y++)


if ( min > m[x][y] )
{
min=m[x][y];
loi=x;
loj=y;
}
if ( loi != i && loj !=j )
{
aux = m[j];
m[j] = m[loi][loj];
m[loi][loj] = aux;
}
}
// fin ordenamiento//

printf("valores ordenados\n");
for(i = 0; i < f; i++)
{
for(j = 0; j < c; j++)
printf("%d ", m[j]);
printf("\n");
}



printf ("Desea hacer otro ordenamiento?\n s)si, n)no\n");
scanf("%s",&resp);
}while(resp=='s');
}

-------
¿Me pordrían decir qué estoy haciendo mal? Por favor :c
 
crea un vector auxiliar[9] recorre la matriz por filas con un for y guarda cada elemento en la matriz de 0 a 8.... luego ordena el vector con el algoritmo de seleccion
y luego pues metes los datos de nuevo en la matriz ... o puede ordenar cada fila de la matriz con el algoritmo de seleccion y queda mas facil .... ;= mmmm

for j=0; j<3; j++
for k=0; k<3; k++
aqui va el de seleccion sobre la matriz en m[j] y ordenas sobre k... y ya pues le sigues y asi queda
 
PUES HABER SI TE SIRVE ESTE BOSQUEJO TU LO TIENES QUE RAZONAR

crea un vector auxiliar[9] recorre la matriz por filas con un for y guarda cada elemento en la matriz de 0 a 8.... luego ordena el vector con el algoritmo de seleccion
y luego pues metes los datos de nuevo en la matriz ... o puede ordenar cada fila de la matriz con el algoritmo de seleccion y queda mas facil .... ;= mmmm

for j=0; j<3; j++
for k=0; k<3; k++
aqui va el de seleccion sobre la matriz en m[j] y ordenas sobre k... y ya pues le sigues y asi queda
 
mira tengo el de selección pero esta en funciones y no se parece nada al tuyo, y no solo es un arreglo u no matriz
 
Volver
Arriba