fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int** alocaMatriz(int lin, int col){
  5. int** matriz = (int**)malloc(lin*sizeof(int*));
  6. for(int i = 0; i < lin; i++)
  7. matriz[i] = (int*)malloc(col*sizeof(int));
  8.  
  9. return matriz;
  10. }
  11.  
  12. void leMatriz(int** matriz, int lin, int col){
  13. for(int i = 0; i < lin; i++){
  14. for(int j = 0; j < col; j++){
  15. printf("Digite o elemento M[%d][%d]: ", i, j);
  16. scanf("%d", &matriz[i][j]);
  17. }
  18. }
  19. }
  20.  
  21. void mostraMatriz(int** matriz, int lin, int col){
  22. for(int i = 0; i < lin; i++){
  23. for(int j = 0; j < col; j++)
  24. printf("%d ", matriz[i][j]);
  25. printf("\n");
  26. }
  27. printf("\n");
  28. }
  29.  
  30. void ordenaMatriz(int **matriz, int lin, int col)
  31. {
  32.  
  33. int i, j, menor, cont = 0;
  34. int vetor[lin*col];
  35.  
  36. for(i=0;i<lin;i++){
  37. for(j=0;j<col;j++){
  38. vetor[cont]=matriz[i][j];
  39. cont++;
  40. }
  41. }
  42.  
  43. for(i=0;i<(lin*col);i++){
  44. printf("%d ", vetor[i]);
  45. }
  46. printf("\n");
  47.  
  48. for(i=0;i<lin*col;i++){
  49. menor=vetor[i];
  50. for(j=0;j<lin*col;j++){
  51. if(vetor[j]<menor){
  52. vetor[i] = vetor[j];
  53. vetor[j] = menor;
  54. menor = vetor[i];
  55. }
  56. }
  57. }
  58. for(i = 0, cont = 0; i < lin; i++){
  59. for(j = 0; j < col; j++){
  60. matriz[i][j]=vetor[cont];
  61. cont++;
  62. }
  63. }
  64. }
  65.  
  66. void ordena_x_y(int** matriz, int i, int j){
  67.  
  68.  
  69. }
  70. void desalocaMatriz(int** matriz, int k){
  71. for(int i = 0; i < k; i++)
  72. free(matriz[i]);
  73. free(matriz);
  74. }
  75.  
  76. int main(int argc, char** argv) {
  77. int lin, col;
  78. int **matriz;
  79.  
  80. printf("Digite as dimensoes da matriz: ");
  81. scanf("%d %d", &lin, &col);
  82.  
  83. matriz = alocaMatriz(lin, col);
  84. leMatriz(matriz, lin, col);
  85. printf("Matriz nao ordenada: \n");
  86. mostraMatriz(matriz, lin, col);
  87. ordenaMatriz(matriz, lin, col);
  88. printf("Matriz ordenada: \n");
  89. mostraMatriz(matriz, lin, col);
  90. desalocaMatriz(matriz, lin);
  91.  
  92. return 0;
  93. }
  94.  
Success #stdin #stdout 0s 4460KB
stdin
2 2
3 4 2 5
stdout
Digite as dimensoes da matriz: Digite o elemento M[0][0]: Digite o elemento M[0][1]: Digite o elemento M[1][0]: Digite o elemento M[1][1]: Matriz nao ordenada: 
3 4 
2 5 

3 4 2 5 
Matriz ordenada: 
5 4 
3 2