fork download
  1. #include "stdio.h"
  2. #include "time.h"
  3. #include "stdlib.h"
  4.  
  5. #define M_SIZE 5
  6.  
  7. int main()
  8. {
  9. int m_1[M_SIZE][M_SIZE];
  10. int m_2[M_SIZE][M_SIZE];
  11. int m_3[M_SIZE][M_SIZE];
  12.  
  13. unsigned long seed = time(NULL);
  14. srand(seed);
  15. #define fill_print(num) \
  16.   for(int i = 0; i < M_SIZE; i++) { \
  17.   for(int j = 0; j < M_SIZE; j++) \
  18.   { \
  19.   m_##num[i][j] = rand()%100 - 50; \
  20.   printf("%4d",m_##num[i][j]); \
  21.   } printf("\n");} \
  22.   printf("\n");
  23. fill_print(1)
  24. fill_print(2)
  25. fill_print(3)
  26. #undef fill_print
  27.  
  28. #define calc(num) \
  29.   int sum_##num = 0; \
  30.   for(int i = 0; i < M_SIZE; i++) \
  31.   if(m_##num[i][0] < 0) \
  32.   sum_##num += m_##num[i][i];
  33. calc(1)
  34. calc(2)
  35. calc(3)
  36. #undef calc
  37. printf("sum_1 = %d sum_2 = %d sum_3 = %d\n",sum_1,sum_2,sum_3);
  38. int num_min = 1;
  39. if(sum_2 < sum_1 && sum_2 < sum_3)
  40. num_min = 2;
  41. if(sum_3 < sum_1 && sum_3 < sum_2)
  42. num_min = 3;
  43. switch(num_min)
  44. {
  45. #define Case(num) \
  46.   case num : \
  47.   for(int s = 0; s < M_SIZE; s++) \
  48.   { \
  49.   for(int i = 0; i < M_SIZE; i++){ \
  50.   for(int j = 0; j < M_SIZE; j++) \
  51.   { \
  52.   if(m_##num[s][i] < m_##num[s][j]) \
  53.   { \
  54.   int tmp = m_##num[s][i]; \
  55.   m_##num[s][i] = m_##num[s][j]; \
  56.   m_##num[s][j] = tmp; \
  57.   } \
  58.   } \
  59.   } \
  60.   } \
  61.   for(int i = 0; i < M_SIZE; i++) \
  62.   { \
  63.   for(int j = 0; j < M_SIZE; j++) \
  64.   printf("%4d",m_##num[i][j]); \
  65.   printf("\n"); \
  66.   } \
  67.   break;
  68. Case(1)
  69. Case(2)
  70. Case(3)
  71. #undef Case
  72. }
  73. return 0;
  74. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
 -18  37  32 -31  -9
 -40  34 -37  -4  24
  43  26  -8  14 -25
  33  45 -32  45   0
 -45  11 -25 -22 -25

 -45 -14 -30  42  45
 -10  26 -16  25  -2
  25  35 -18  -9 -19
 -44  36   9  -2 -48
 -14  34  -1 -44 -19

  49  14  -6 -26  42
  19  32  31  -8  24
 -22  32 -48  13 -41
   0  40  44  32  33
  27  -9 -28  38  -9

sum_1 = -9 sum_2 = -40 sum_3 = -48
 -26  -6  14  42  49
  -8  19  24  31  32
 -48 -41 -22  13  32
   0  32  33  40  44
 -28  -9  -9  27  38