鞍点
2015-10-06 20:35
661 查看
**鞍点** -- 该行中最大的,该列中最小的数. 1. //定义整型[4][3], 随机值[10][30],求鞍点 //1,定义数组 int array[4][3] = {0}; //2.赋值[10,30]; for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) { //arc4random()函数找出随机数 array[i][j] = arc4random() % ( 30 - 10 + 1) + 10; //输出随机数 printf("%d ", array[i][j]); } printf("\n"); } //3.求鞍点 //判断是否是鞍点??? 数组中每一元素都有可能是鞍点,因此要i数组 int count = 0; //记录鞍点的个数 for (int i = 0; i < 4; i++) { for (int j = 0; j < 3; j++) { //假设当前的值就是鞍点 //验证: //验证1: 该点是该行最大的 int max = array[i][j]; //假设当前点,是该行最大的值 //验证: 是不是该行的最大值 BOOL isMax = YES; // YES 为真,代表当前的点是鞍点 for(int colomn = 0; colomn < 3; colomn++) { //判断是不是该行最大值. if (max < array[i][colomn]) { //能够进入该分支内部,代表当前值不是该行最大值,该点就不是鞍点. isMax = NO; break; } } if (isMax == NO) { continue; } //验证2:改点是该列最小的 int min = array[i][j]; BOOL isMin = YES; //假设是该列中最小的 //验证是该列最小的 for (int row = 0; row < 4; row++) { if (min > array[row][j]) { //如果,一旦发现该行中还有数值,比当前的值min还小,说明当前值不是该列中最小的,不是鞍点 isMin = NO; break; } } if (!isMin) { continue; } //程序能够执行到该行,意味着该点就是鞍点 count++; printf("鞍点: %d, 所在第%d行, 第%d列\n,", array[i][j], i + 1, j + 1); } } if(0 == count){ printf("亲,真心没有鞍点!!!"); }
相关文章推荐
- ruby 数组使用教程
- Ruby中的数组和散列表的使用详解
- C#实现AddRange为数组添加多个元素的方法
- C#动态调整数组大小的方法
- Lua和C语言的交互详解
- 详解Lua中的数组概念知识
- Perl中的列表和数组学习笔记
- 探索PowerShell (八) 数组、哈希表(附:复制粘贴技巧)
- C#中数组初始化与数组元素复制的方法
- C#交错数组用法实例
- PowerShell数组的一些操作技巧
- C#通过yield实现数组全排列的方法
- C#不重复输出一个数组中所有元素的方法
- C#实现将数组内元素打乱顺序的方法
- Ruby简明教程之数组和Hash介绍
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解