• 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);
    }
  • 相关阅读:
    linux 下常用命令
    Mysql 数据库几种引擎的区别比较
    java 中使用ajax调用后台方法注意事项
    C# HtmlDocument和HtmlNode的使用以及节点的模糊查询
    Visio 保存卡死解决办法
    java outterLoop跳出多重循环用法以及详解
    webapi 文件下载输出接口
    获取web.config 内的值
    xml的读取(曾删改)
    from 验证
  • 原文地址:https://www.cnblogs.com/Allen-win/p/7218080.html
Copyright © 2020-2023  润新知