Advertisement
mihainan

Banalitati C

Nov 24th, 2014
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.69 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int sumaVector(int v[], int length)
  5. {
  6.     int i, suma;
  7.     suma = 0;
  8.     for(i = 0; i < length; i++)
  9.     {
  10.         suma += v[i];
  11.     }
  12.     return suma;
  13. }
  14.  
  15. void swap(int* a, int *b)
  16. {
  17.     int aux;
  18.     aux = *a;
  19.     *a = *b;
  20.     *b = aux;
  21. }
  22.  
  23. void sortare_vector(int v[], int length)
  24. {
  25.     //Bubble Sort
  26.     int i, j;
  27.     for(i = 0; i < length - 1; i++)
  28.     {
  29.         for(j = 0; j < length - 1 - i; j++)
  30.         {
  31.             if(v[j] > v[j+1])
  32.             {
  33.                 swap(&v[j], &v[j+1]);
  34.             }
  35.         }
  36.     }
  37. }
  38.  
  39. void copyVector(int src[], int dst[], int length)
  40. {
  41.     int i;
  42.     for(i = 0; i < length; i++)
  43.     {
  44.         dst[i] = src[i];
  45.     }
  46. }
  47.  
  48. void initializareVector(int v[], int length)
  49. {
  50.     int i;
  51.     for(i = 0; i < length; i++)
  52.     {
  53.         v[i] = 0;
  54.     }
  55. }
  56.  
  57. void afisare_matrice(int mat[][100], int n, int m)
  58. {
  59.     int i, j;
  60.     for(i = 0; i < n; i++)
  61.     {
  62.         for(j = 0; j < m; j++)
  63.         {
  64.             printf("%d ", mat[i][j]);
  65.         }
  66.         printf("\n");
  67.     }
  68. }
  69.  
  70. void ordonare_matrice(int mat[][100], int n, int m)
  71. {
  72.     int suma[100], suma1[100], viz[100], i, j;
  73.     int mat1[100][100];
  74.     for(i = 0; i < n; i++)
  75.     {
  76.         suma[i] = sumaVector(mat[i], m);
  77.         suma1[i] = suma[i];
  78.     }
  79.     sortare_vector(suma1, m);
  80.     initializareVector(viz, m);
  81.     for(i = 0; i < n; i++)
  82.     {
  83.         for(j = 0; j < n; j++)
  84.         {
  85.             if(suma[i] == suma1[j] && viz[j] == 0)
  86.             {
  87.                 copyVector(mat[i], mat1[j], m);
  88.                 viz[j] = 1;
  89.                 break;
  90.             }
  91.         }
  92.     }
  93.     for(i = 0; i < n; i++)
  94.     {
  95.         copyVector(mat1[i], mat[i], m);
  96.     }
  97. }
  98.  
  99. int main()
  100. {
  101.     freopen("input.in", "r", stdin);
  102.     int a[100][100], i, j, n, m;
  103.     scanf("%d %d", &n, &m);
  104.     for(i = 0; i < n; i++)
  105.     {
  106.         for(j = 0; j < n; j++)
  107.         {
  108.             scanf("%d", &a[i][j]);
  109.         }
  110.     }
  111.     ordonare_matrice(a, n, m);
  112.     afisare_matrice(a, n, m);
  113.     return 0;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement