Advertisement
huutho_96

Untitled

Apr 1st, 2015
395
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.02 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <stdio.h>
  3. #include <conio.h>
  4. //mình lười nhập nên khai bao thêm 2 thư viện này. bạn chỉ cần
  5. //nhập kích thước thì sẽ có 1 mảng bất kì
  6. //chương trình chạy đúng nhưng sẽ phải so sánh và tính toán nhiều
  7. //mình chỉ sửa lại khúc so sánh. bạn thử rút gọn chương trình xuống cho tối ưu nha
  8. #include <Windows.h>
  9. #include <time.h>
  10. #define max 100
  11. typedef int matran[max][max];
  12. matran a;
  13.  
  14. void nhap(matran a, int &m, int &n);
  15. void xuat(matran a, int m, int n);
  16. int tongtrendong(matran a, int m, int n);
  17. void hoandoidong(matran a, int m, int n, int d1, int d2);
  18. void saptheodongtangdan(matran a, int m, int n);
  19.  
  20. int main()
  21. {
  22. int m, n;
  23. printf("CAU 7. \n\n");
  24. nhap(a, m, n);
  25. saptheodongtangdan(a, m, n);
  26. xuat(a, m, n);
  27. _getch();
  28. return 0;
  29. }
  30.  
  31. void nhap(matran a, int &m, int &n)
  32. {
  33. printf("\nNhap so dong m = "); //m dòng
  34. scanf("%d", &m);
  35. printf("\nNhap so cot n = "); //n cột
  36. scanf("%d", &n);
  37. srand(time(NULL));
  38. for (int i = 0; i < m; i++)
  39. {
  40. for (int j = 0; j < n; j++)
  41. {
  42. //printf("\n a[%d][%d] = ", i, j);
  43. //scanf("%d", &a[i][j]);
  44. a[i][j] = rand() % 5;
  45. }
  46.  
  47. }
  48. }
  49.  
  50.  
  51. void xuat(matran a, int m, int n)
  52. {
  53.  
  54. for (int i = 0; i<m; i++)
  55. {
  56. for (int j = 0; j < n; j++)
  57. printf("\t %5d", a[i][j]);
  58. printf("\n");
  59. }
  60. }
  61.  
  62. void hoanvi(int &a, int &b)
  63. {
  64. int tam = a;
  65. a = b;
  66. b = tam;
  67. }
  68.  
  69. int tongtrendong(matran a, int d, int c)
  70. {
  71. //d là dòng, c là cột
  72. int S = 0;
  73. for (int j = 0; j < c; j++)
  74. S += a[d][j];
  75. return S;
  76. }
  77.  
  78. void hoandoidong(matran a, int m, int n, int d1, int d2)
  79. {
  80. if ((d1 >= 0 && d1 < m) && (d2 >= 0 && d2 < m))
  81. {
  82. for (int j = 0; j < n; j++)
  83. {
  84. hoanvi(a[d1][j], a[d2][j]);
  85. }
  86. }
  87. }
  88.  
  89. void saptheodongtangdan(matran a, int m, int n)
  90. {
  91. for (int i = 0; i <= m - 2; i++)
  92. for (int j = i + 1; j <= m - 1; j++)
  93. {
  94. if (tongtrendong(a, i, n) > tongtrendong(a, j, n))
  95. {
  96. hoandoidong(a, m, n, i, j);
  97. }
  98. }
  99. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement