求一个二维数组的鞍点

小咪咪 2023-05-28 14:28 97阅读 0赞
  1. //求一个二维数组的鞍点
  2. #include<stdio.h>
  3. int main()
  4. {
  5. int i,j,m,n,k,x,y;
  6. int a[3][3]={
  7. {3,2,1},{4,5,6},{7,8,9}};
  8. int b[3];//用来存放的是三行的最大值
  9. int c[3];//用来存放三列的最小值
  10. for(i=0;i<3;i++)
  11. {
  12. m=a[i][0];
  13. for(j=0;j<3;j++)
  14. if(a[i][j]>m)
  15. m=a[i][j]; //求出i行的最大值
  16. b[i]=m;
  17. }
  18. printf("输出行的最大的值所在的数组:\n");
  19. for(k=0;k<i;k++)
  20. printf("%d\t",b[k]);//
  21. for(j=0;j<3;j++)
  22. {
  23. n=a[0][j];
  24. for(i=0;i<3;i++)
  25. if(a[i][j]<n)
  26. n=a[i][j]; //求出i行的最小值
  27. c[j]=n;
  28. }
  29. printf("输出行的最小的值所在的数组:\n");
  30. for(k=0;k<j;k++)
  31. printf("%d\t",c[k]);//
  32. printf("\n");
  33. for(x=0,y=0;x<i,y<j;x++,y++)
  34. {
  35. if(b[x]==c[x])
  36. printf("%d是鞍点\n",b[x]);
  37. else
  38. printf("这个数不是鞍点\n");
  39. }
  40. return 0;
  41. }

以上程序纯属自己瞎写的,测试的结果最后一个有一点点问题吧。如果不是鞍点的话不好打印。

解释下什么是鞍点吧:鞍点指的是一个二维数组中的在这一行的最大值,在这一列反而是最小值,这样的数称为鞍点

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N1bmNoYW5nbGFuMTUx_size_16_color_FFFFFF_t_70

发表评论

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

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

相关阅读

    相关 数组

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

    相关 数组

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