您的位置:首页 > 编程语言 > C语言/C++

鞍点

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("亲,真心没有鞍点!!!");
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C语言 数组 break cotinue