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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include <stdio.h>
  2. int main() {
  3. int n, m;
  4. int i,j;
  5. scanf("%d %d", &n, &m);
  6. int arr[10][10];
  7. // 读取二维数组元素
  8. for (i = 0; i < n; i++) {
  9. for (j = 0; j < m; j++) {
  10. scanf("%d", &arr[i][j]);
  11. }
  12. }
  13. // 查找每行最小值和每列最小值
  14. int row_min[10] = {0};
  15. int col_min[10] = {0};
  16. for (i = 0; i < n; i++) {
  17. row_min[i] = arr[i][0]; // 初始化为第一列的值
  18. for (j = 1; j < m; j++) {
  19. if (arr[i][j] < row_min[i]) {
  20. row_min[i] = arr[i][j];
  21. }
  22. }
  23. }
  24. for (j = 0; j < m; j++) {
  25. col_min[j] = arr[0][j]; // 初始化为第一行的值
  26. for (i = 1; i < n; i++) {
  27. if (arr[i][j] < col_min[j]) {
  28. col_min[j] = arr[i][j];
  29. }
  30. }
  31. }
  32. // 输出"最小点"
  33. for (i = 0; i < n; i++) {
  34. for (j = 0; j < m; j++) {
  35. if (arr[i][j] == row_min[i] && arr[i][j] == col_min[j]) {
  36. printf("%d %d %d\n", arr[i][j], i + 1, j + 1); // 注意行列从1开始计数
  37. }
  38. }
  39. }
  40. return 0;
  41. }