C语言,二维数组 找鞍点
2013-11-30 01:54
204 查看
还是以前写过的东西。。
鞍点是什么?百度出来的东西
鞍点(Saddle point)在微分方程中,沿着某一方向是稳定的,另一条方向是不稳定的奇点,叫做鞍点。在泛函中,既不是极大值点也不是极小值点的临界点,叫做鞍点。在矩阵中,一个数在所在行中是最大值,在所在列中是最小值,则被称为鞍点。在物理上要广泛一些,指在一个方向是极大值,另一个方向是极小值的点。
题目是这样的
找出一个二维数组中的“鞍点”,即该位置上的元素在该行中最大,在该列中最小(也可能没有“鞍点”),打印出有关信息。
#define ROW_COLUMN 5
void saddlePoint()
{
int array[ROW_COLUMN][ROW_COLUMN]={6,9,9,2,7 ,4,9,5,4,2, 9,9,8,7,9, 7,8,4,5,6, 2,9,4,5,6};
int maxRow[ROW_COLUMN]={0},minColumn[ROW_COLUMN]={50,50,50,50,50}; //马鞍点
for (int row=0; row<ROW_COLUMN; row++) {
for (int column=0; column<ROW_COLUMN; column++) {
// array[row][column]=arc4random()%10+1;
printf("%d ",array[row][column]);
}
printf("\n");
}
for (int i=0; i<ROW_COLUMN; i++) {
for (int j=0; j<ROW_COLUMN; j++) {
if (array[i][j]>maxRow[i]) {
maxRow[i]=array[i][j]; //塞选出每一行的最一大个,保存进最大行数组
}
}
}
for (int i=0; i<ROW_COLUMN; i++) {
for (int j=0; j<ROW_COLUMN; j++) {
if(array[j][i]<minColumn[j])
{
minColumn[i]=array[j][i]; //塞选每列的最小那个,保存进最小输裂数组
}
}
}
bool boolFlag=false;
for (int i=0; i<ROW_COLUMN; i++) {
if(maxRow[i]==minColumn[i])
{
boolFlag=true;
}
}
printf("%s",boolFlag?"鞍点存在":"鞍点不存在");
}
鞍点是什么?百度出来的东西
鞍点(Saddle point)在微分方程中,沿着某一方向是稳定的,另一条方向是不稳定的奇点,叫做鞍点。在泛函中,既不是极大值点也不是极小值点的临界点,叫做鞍点。在矩阵中,一个数在所在行中是最大值,在所在列中是最小值,则被称为鞍点。在物理上要广泛一些,指在一个方向是极大值,另一个方向是极小值的点。
题目是这样的
找出一个二维数组中的“鞍点”,即该位置上的元素在该行中最大,在该列中最小(也可能没有“鞍点”),打印出有关信息。
#define ROW_COLUMN 5
void saddlePoint()
{
int array[ROW_COLUMN][ROW_COLUMN]={6,9,9,2,7 ,4,9,5,4,2, 9,9,8,7,9, 7,8,4,5,6, 2,9,4,5,6};
int maxRow[ROW_COLUMN]={0},minColumn[ROW_COLUMN]={50,50,50,50,50}; //马鞍点
for (int row=0; row<ROW_COLUMN; row++) {
for (int column=0; column<ROW_COLUMN; column++) {
// array[row][column]=arc4random()%10+1;
printf("%d ",array[row][column]);
}
printf("\n");
}
for (int i=0; i<ROW_COLUMN; i++) {
for (int j=0; j<ROW_COLUMN; j++) {
if (array[i][j]>maxRow[i]) {
maxRow[i]=array[i][j]; //塞选出每一行的最一大个,保存进最大行数组
}
}
}
for (int i=0; i<ROW_COLUMN; i++) {
for (int j=0; j<ROW_COLUMN; j++) {
if(array[j][i]<minColumn[j])
{
minColumn[i]=array[j][i]; //塞选每列的最小那个,保存进最小输裂数组
}
}
}
bool boolFlag=false;
for (int i=0; i<ROW_COLUMN; i++) {
if(maxRow[i]==minColumn[i])
{
boolFlag=true;
}
}
printf("%s",boolFlag?"鞍点存在":"鞍点不存在");
}
相关文章推荐
- 二维数组的“鞍点”(C语言)
- 【咀嚼C语言】二维数组找鞍点
- 【c语言】:找出一个二维数组的“鞍点”,即该位置上的元素在该行上最大,在该列上最小。也可能没有鞍点
- 【C语言】找出一个二维数组的“鞍点”【原创技术】
- 【C语言】二维数组在内存中的存储方式
- C语言,二维数组时候的指针
- C语言动态分配二维数组
- c语言二维数组的下标运算与指针偏移
- 【C语言】 动态开辟二维数组
- C语言中二维数组的问题
- C语言:定义指向二维数组的指针变量
- 《C语言及程序设计》实践参考——折腾二维数组
- 《C语言及程序设计》实践项目——二维数组与指针
- C语言二维数组作为函数参数传递
- C语言之二维数组
- C语言中动态二维数组定义
- 【C语言】二维数组转置
- C语言中动态分配二维数组
- C语言二维数组剖析【元素及元素地址的指针操作】
- C语言实现动态一维/二维数组的申请