zoukankan      html  css  js  c++  java
  • 1160 矩阵的最大值(指针专题)

    题目来源:
    https://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1160
    Description

    找出一个2×3的整数矩阵中的最大值及其行下标和列下标,要求调用函数FindMax(int p[][3], int m, int n, int *pRow, int *pCol)实现,行下标和列下标在形参中以指针的形式返回。
    void FindMax(int p[][3], int m, int n, int *pRow, int *pCol){
    //在m*n矩阵p中查找最大值,将其行下标存入pRow所指内存单元,将其列下标存入pCol所指内存单元
    }

    Input
    输入2行3列整数,共6个。
    Output
    输出3个整数,矩阵中的最大值及其行下标和列下标,数据之间用空格隔开。测试数据保证最大值唯一。

    Sample Input
    100 3 6
    0 87 65
    Sample Output
    100 0 0
    题意描述:
    输入2*3的整数矩阵
    调用FindMax()函数计算并输出最大值,修改h和l的值为最大值的行列下标值并输出
    解题思路:
    调用FindMax()函数,遍历矩阵找到最大值并利用指针修改h和l的值
    程序代码:

     1 #include<stdio.h>
     2 int FindMax(int a[][3],int *pRow, int *pCol);
     3 int main()
     4 {
     5     int i,j,a[2][3],h,l,max;
     6     for(i=0;i<2;i++)
     7     {
     8         for(j=0;j<3;j++)
     9         {
    10             scanf("%d",&a[i][j]);
    11         }
    12     }
    13     max=FindMax(a,&h,&l);
    14     printf("%d %d %d
    ",max,h,l);
    15     return 0;
    16 } 
    17 int FindMax(int a[][3],int *pRow, int *pCol)
    18 {
    19     int max=0,i,j;
    20     for(i=0;i<2;i++)
    21     {
    22         for(j=0;j<3;j++)
    23         {
    24             if(a[i][j]>max)
    25             {
    26                 max=a[i][j];
    27                 *pRow=i;
    28                 *pCol=j;
    29             }
    30         }
    31     }
    32     return max;
    33 }


    易错分析:
    注意当修改指针参数时将函数返回值单独赋给一个变量

  • 相关阅读:
    python 软件目录结构规范 与 模块导入
    Python 序列化之json&pickle模块
    损失函数总结
    从1到n整数中1出现的次数(Java)
    随手编程---快速排序(QuickSort)-Java实现
    从上往下打印二叉树(剑指offer_32.1)
    栈的压入、弹出序列(剑指offer_31)
    63. 搜索旋转排序数组 II(回顾)
    643. 最长绝对文件路径(回顾)
    40. 用栈实现队列
  • 原文地址:https://www.cnblogs.com/wenzhixin/p/6804899.html
Copyright © 2011-2022 走看看