fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6. int N, M;
  7. scanf("%d%d", &N, &M);
  8.  
  9. // Мой VC++ VLA не поддерживает...
  10. int ** arr = malloc(N*sizeof(int*));
  11. for(int i = 0; i < N; ++i)
  12. arr[i] = malloc(M*sizeof(int));
  13.  
  14. for(int i = 0; i < N; i++)
  15. {
  16. for(int j = 0; j < M; j++)
  17. scanf("%d", &arr[i][j]);
  18. }
  19.  
  20. // Первоначальные минимум и максимум берем для первого столбца,
  21. // а не какие-то 9999 и -9999...
  22. int idxMin = 0, idxMax = 0, min = 0, max = 0;
  23. for(int i = 0; i < N; i++)
  24. min += arr[i][0];
  25. max = min;
  26.  
  27. for(int i = 1; i < M; i++)
  28. {
  29. int sum = 0;
  30. for(int j = 0; j < N; j++) sum += arr[j][i];
  31. if (max < sum)
  32. {
  33. max = sum;
  34. idxMax = i;
  35. }
  36. if (min > sum)
  37. {
  38. min = sum;
  39. idxMin = i;
  40. }
  41. }
  42.  
  43. // printf("\n%d %d\n", max, min); Это не требуется
  44.  
  45. for(int i = 0; i < N; ++i)
  46. {
  47. int tmp = arr[i][idxMin];
  48. arr[i][idxMin] = arr[i][idxMax];
  49. arr[i][idxMax] = tmp;
  50. }
  51.  
  52. for(int i = 0; i < N; i++)
  53. {
  54. for(int j = 0; j < M; j++)
  55. printf("%d ", arr[i][j]);
  56. printf("\n");
  57. }
  58. }
  59.  
Success #stdin #stdout 0s 5536KB
stdin
3 4
1 2 3 4
1 3 4 5
0 2 3 -2


stdout
3 2 1 4 
4 3 1 5 
3 2 0 -2