二维数组——鞍点计算

╰+攻爆jí腚メ 2022-07-13 02:23 311阅读 0赞

鞍点计算
Time Limit: 1000MS Memory Limit: 65536KB
Submit Statistic
Problem Description

找出具有m行n列二维数组Array的“鞍点”,即该位置上的元素在该行上最大,在该列上最小,其中1<=m,n<=10。
Input

输入数据有多行,第一行有两个数m和n,下面有m行,每行有n个数。
Output

按下列格式输出鞍点:

Array[i][j]=x

其中,x代表鞍点,i和j为鞍点所在的数组行和列下标,我们规定数组下标从0开始。

一个二维数组并不一定存在鞍点,此时请输出None。

我们保证不会出现两个鞍点的情况,比如:

3 3
1 2 3
1 2 3
3 6 8
Example Input

3 3
1 2 3
4 5 6
7 8 9
Example Output

Array[0][2]=3
Hint

Author

  1. #include <stdio.h>
  2. int main()
  3. {
  4. int m, n, i, j, k, b, c, flag, q;
  5. q = 1;
  6. scanf("%d %d", &m, &n);
  7. int a[m][n];
  8. for(i = 0; i < m; i++)
  9. {
  10. for(j = 0; j < n; j++)
  11. {
  12. scanf("%d", &a[i][j]);
  13. }
  14. }
  15. for(i = 0; i < m; i++)
  16. {
  17. flag = 1;
  18. b = i, c = 0;
  19. for(j = 0; j < n; j++)
  20. {
  21. if(a[b][c] < a[i][j])
  22. {
  23. c = j;
  24. }
  25. }///寻找每行的最大值
  26. for(k = 0; k < m; k++)
  27. {
  28. if(a[b][c] > a[k][c])
  29. {
  30. flag = 0;
  31. break;
  32. }
  33. }///排除法判断是否是每列的最小值
  34. if(flag)
  35. {
  36. printf("Array[%d][%d]=%d\n", b, c, a[b][c]);
  37. q = 0;
  38. }
  39. }
  40. if(q)
  41. printf("None\n");
  42. return 0;
  43. }

发表评论

表情:
评论列表 (有 0 条评论,311人围观)

还没有评论,来说两句吧...

相关阅读

    相关 数组

    / 问题:找出一个二维数组中的鞍点,即该位置上的元素在该行最大,在该列上最大(也可能没有鞍点) 思路:先找二位数组每一行的最大值,记录下该最大值的列数,再比较这个数

    相关

    题目内容: 给定一个n\n矩阵A。矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数。一个矩阵A也可能没有鞍点。 你的任务是找出A的鞍点

    相关 数组

    题目内容: 给定一个n\n矩阵A。矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数。一个矩阵A也可能没有鞍点。 你的任务是找出A的鞍点