二维整型数组的“最小点”.c 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include <stdio.h>
  2. void find_minimum_points(int matrix[][10], int n, int m) {
  3. int min_in_row[n], min_in_col[m];
  4. int i,j;
  5. // 初始化最小值数组为最大整数
  6. for (i = 0; i < n; ++i) {
  7. min_in_row[i] = 2147483647;
  8. }
  9. for (j = 0; j < m; ++j) {
  10. min_in_col[j] = 2147483647;
  11. }
  12. // 找到每行的最小值
  13. for (i = 0; i < n; ++i) {
  14. for (j = 0; j < m; ++j) {
  15. if (matrix[i][j] < min_in_row[i]) {
  16. min_in_row[i] = matrix[i][j];
  17. }
  18. }
  19. }
  20. for (j = 0; j < m; ++j) {
  21. for (i = 0; i < n; ++i) {
  22. if (matrix[i][j] < min_in_col[j]) {
  23. min_in_col[j] = matrix[i][j];
  24. }
  25. }
  26. }
  27. for (i = 0; i < n; ++i) {
  28. for (j = 0; j < m; ++j) {
  29. if (matrix[i][j] == min_in_row[i] && matrix[i][j] == min_in_col[j]) {
  30. printf("%d %d %d\n", matrix[i][j], i + 1, j + 1);
  31. }
  32. }
  33. }
  34. }
  35. int main() {
  36. int n,m,i,j;
  37. scanf("%d %d", &n, &m);
  38. int matrix[10][10];
  39. for (i = 0; i < n; ++i) {
  40. for (j = 0; j < m; ++j) {
  41. scanf("%d", &matrix[i][j]);
  42. }
  43. }
  44. // 查找二维数组的最小点
  45. find_minimum_points(matrix, n, m);
  46. return 0;
  47. }