Problema con ordenar matriz!!!
Publicado por juan (7 intervenciones) el 21/10/2007 01:44:32
Tengo un problema con la ordenacion de la matriz
Le pido al ususario que ingrese de donde hasta donde desea ordenar la matriz ya sea en por filas como por columnas, y guardo el valor de las columnas en un char que luegoconvierto en int (aux_inicio, aux_fin)
que onda che , me corre sin problemas pero nome ordena nada bien
agradezco me dieran una manillo
Un abrazo, aca el codigo
void ordenar_f(celda matriz[n_f][n_c])
{
int i, j , k ,z;
float aux;
int inicio_f ,fin_f ;
char inicio_c[0],fin_c[0];
int aux_inicio, aux_fin;
printf("Ingrese desde donde:\n");
scanf("%s %d",&inicio_c ,&inicio_f);
aux_inicio = inicio_c[0]-65;
printf("Ingrese hasta donde:\n");
scanf("%s %d",&fin_c,&fin_f);
aux_fin = fin_c[0]-65;
for (i=inicio_f;i<=fin_f;i++)
{
for (j=aux_inicio;j<=aux_fin;j++)
matriz[i][j].valor=matriz[i][j].valor;
}
for (j=inicio_f;j<=fin_f;j++)
{
for (i=aux_inicio;i<=aux_fin;i++)
{
for (k=i+1;k<=aux_fin;k++)
{
if (matriz[j][i].valor > matriz[j][k].valor)
{
aux = matriz[j][i].valor;
matriz[j][i].valor = matriz[j][k].valor;
matriz[j][k].valor = aux;
}
}
}
}
for (z = aux_inicio ;z <aux_fin;z++)
{
printf("\t%c",z+65);
}
printf("\n\n");
for (i=inicio_f;i<=fin_f;i++)
{
printf(" [%i]\t",i+1);
for (j=aux_inicio;j <=aux_fin; j++)
{
printf("%.1f",matriz[i][j].valor);
printf("\t");
}
printf("\n");
}
}
luego ...
lo mismo pero para ord columnas.
Le pido al ususario que ingrese de donde hasta donde desea ordenar la matriz ya sea en por filas como por columnas, y guardo el valor de las columnas en un char que luegoconvierto en int (aux_inicio, aux_fin)
que onda che , me corre sin problemas pero nome ordena nada bien
agradezco me dieran una manillo
Un abrazo, aca el codigo
void ordenar_f(celda matriz[n_f][n_c])
{
int i, j , k ,z;
float aux;
int inicio_f ,fin_f ;
char inicio_c[0],fin_c[0];
int aux_inicio, aux_fin;
printf("Ingrese desde donde:\n");
scanf("%s %d",&inicio_c ,&inicio_f);
aux_inicio = inicio_c[0]-65;
printf("Ingrese hasta donde:\n");
scanf("%s %d",&fin_c,&fin_f);
aux_fin = fin_c[0]-65;
for (i=inicio_f;i<=fin_f;i++)
{
for (j=aux_inicio;j<=aux_fin;j++)
matriz[i][j].valor=matriz[i][j].valor;
}
for (j=inicio_f;j<=fin_f;j++)
{
for (i=aux_inicio;i<=aux_fin;i++)
{
for (k=i+1;k<=aux_fin;k++)
{
if (matriz[j][i].valor > matriz[j][k].valor)
{
aux = matriz[j][i].valor;
matriz[j][i].valor = matriz[j][k].valor;
matriz[j][k].valor = aux;
}
}
}
}
for (z = aux_inicio ;z <aux_fin;z++)
{
printf("\t%c",z+65);
}
printf("\n\n");
for (i=inicio_f;i<=fin_f;i++)
{
printf(" [%i]\t",i+1);
for (j=aux_inicio;j <=aux_fin; j++)
{
printf("%.1f",matriz[i][j].valor);
printf("\t");
}
printf("\n");
}
}
luego ...
lo mismo pero para ord columnas.
Valora esta pregunta


0