zvok
Becerro
- Desde
- 29 Ene 2012
- Mensajes
- 13
- Tema Autor
- #1
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
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