zoukankan      html  css  js  c++  java
  • 7.8求二维数组的马鞍点

    找出一个二维数组中的鞍点,即该位置上的元素在该行上最大,在该列最小。也可能没有鞍点。

    下面是我做这道题时候的代码,如果有不正确的地方,还望大家多多指教。

    //马鞍点:矩阵中在行上最大,列上最小的点。
    #include <stdio.h>
    #define ROW 10
    #define COLUMN 10
    
    int i,j,m,n;
    int arr[ROW][COLUMN];
    
    int main(){
        void maandian(int arr[ROW][COLUMN]);
        printf("请输入矩阵的行m,m<=%d
    ",ROW);
        printf("m=");
        scanf("%d", &m);
        printf("请输入矩阵的列n,n<=%d
    ",COLUMN);
        printf("n=");
        scanf("%d", &n);
        //为矩阵赋初值
        printf("请为矩阵的元素输入初始值:
    ");
        for(i=0; i < m; i++)
        {
            for(j=0; j < n; j++)
            scanf("%d",&arr[i][j]);
        }
        //打印该矩阵
        printf("您输入的矩阵为:
    ");
        for(i=0; i<m; i++)
        {
            for(j=0; j<n; j++)
                {
                printf("%4d",arr[i][j]);
                }
            printf("
    ");
        }
    
    //调用求马鞍点的函数
    maandian(arr);
    
    return 0;
    }
    
    void maandian(int arr[ROW][COLUMN]){
    
        int d,flag,num=0;
        for(i=0; i<m; i++){
            for(j=0; j<n; j++){
                flag=1;    //注意标记放的位置
                
                //要找行上最大的点,所以如果比行上的任意一个点小就跳过
                for(d=0; d<n; d++){
                    if(arr[i][j]<arr[i][d]) 
                    flag=0;
                }
                if(flag==0) continue;
    
                for(d=0; d<m; d++){
                if(arr[i][j]>arr[d][j]) flag=0;
                }
                if(flag==0) continue;
                //如果两个continue都没跳过,说明找到一个马鞍点
                num++;
                printf("第%d个马鞍点位于矩阵的第%d行,%d列,其值为%d
    ",num,i+1,j+1,arr[i][j]);
            }
        }
        if(num==0)printf("该矩阵不存在马鞍点");
        printf("共有%d个马鞍点
    ",num);
    }
  • 相关阅读:
    ROS编程中使用rosed编写代码
    ROS中.launch文件的remap标签详解
    Ubuntu下网易云音乐无法联网的解决办法
    双舵轮AGV里程计、运动控制核心算法
    PID参数调整的口诀
    altium designer生成gerber步骤
    SLAM FOR DUMMIES 第5-8章 中文翻译
    SLAM for Dummies SLAM初学者教程 中文翻译 1到4章
    有关ros::spin()和ros::spinonce()若干感受
    ROS,launch学习
  • 原文地址:https://www.cnblogs.com/Allen-win/p/7218080.html
Copyright © 2011-2022 走看看