【发布时间】:2015-03-23 12:14:56
【问题描述】:
我得到了以下代码:
#include <stdio.h>
#include <stdlib.h>
int ordsel[4][4]={ {3,10,12,7},
{33,22,13,21},
{15,6,3,30},
{16,20,27,2}};
void imprimir()
{
for (int k=0;k<4;k++)
{
for (int m=0;m<4;m++)
printf("%d\t",ordsel[k][m]);
printf("\n");
}
}
void ordenar()
{
int cmenor, aux, ia, fmenor;
for (int k = 0 ; k < 4 ; k++)
{
for (int m = 0 ; m < 4 ; m++)
{
fmenor=k;
cmenor=m;
ia=m;
for (int i=k;i<4;i++)
{
for (int j=ia;j<4;j++)
{
if (ordsel[i][j]<ordsel[fmenor][cmenor])
{
cmenor=j;
fmenor=i;
}
}
ia = 0;
}
}
aux = ordsel[k][m];
ordsel[k][m] = ordsel[fmenor][cmenor];
ordsel[fmenor][cmenor] = aux;
}
}
// Pregunta 3 Parcial III 1415-1
main()
{
printf("Programa que Ordenada una Matriz 4 x 4 por el Metodo Selectivo\n");
printf("\n");
printf("\n MATRIZ INICIAL\n");
imprimir();
printf("\n");
ordenar();
printf(" MATRIZ ORDENADA\n");
imprimir();
printf("\n");
system("pause");
}
我正在努力寻找任何关于这种排序方法应该如何工作的模式。如果有人能解释一下,我将不胜感激。另外,有没有办法只用 2 个“for”循环来做到这一点?我认为主要问题是我无法围绕 3 个“for”循环来导航矩阵。谢谢。
【问题讨论】:
-
没有人能帮我解决这个问题吗?
-
您可能需要考虑将问题标题更改为“了解二维数组上的选择排序”。这可能是对您问题的更准确描述,因此可能会引起更多回复。
-
在此处发布代码,而不是链接。
标签: loops sorting design-patterns for-loop selection