C++尋找鞍點


C++尋找鞍點

任務描述

找出一個二維數組中的鞍點,即該位置上的元素在該行上最大,在該列最小(也可能沒有鞍點)。

測試輸入:

1  2  3  4  5
6  7  8  9  10
11 12 13 14 15
16 17 18 19 20

預期輸出:

a[0][4]=5

測試輸入:

1 1 1 1 2
1 1 1 2 1
1 1 2 1 1

1 2 1 1 1

預期輸出:

不存在鞍點!

源代碼:

#include <stdio.h>
#include <iostream>
using namespace std;


int main()
{
    
    // 請在此添加代碼
    /********** Begin *********/
	int i,j,k,isfind=0;
	int max,max_i,max_j,min;
    int a[4][5];
	for(i=0;i<4;i++){
		for(j=0;j<5;j++){
			cin>>a[i][j];
		}
	}
	//max=a[0][0];
	for(i=0;i<4;i++){
		//找到改行最大值
        max=a[i][0];
        max_i = i;
		max_j = 0;
		for(j=0;j<5;j++){
			if(a[i][j]>max){
				max = a[i][j];
				max_i = i;
				max_j = j;
			}
		}
		//找到該列最小值
		min = a[i][max_j];
		for(k=0;k<4;k++){
			if(a[k][max_j]<min){
				min = a[k][max_j];
			}
		}
		if(max==min){
            isfind=1;
            printf("a[%d][%d]=%d",max_i,max_j,max);
        }
	}
	if(isfind==0)printf("不存在鞍點!");
    
    /********** End **********/
    return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM