/ 科创班 /

记录详情

Accepted


  
# 状态 耗时 内存占用
#1 Accepted 2ms 256.0 KiB
#2 Accepted 2ms 256.0 KiB
#3 Accepted 2ms 256.0 KiB

代码

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i,j,k;
    int m, n;
    int max,maxj,flag;
    scanf("%d%d", &m, &n);
    int **a = (int **)malloc(sizeof(int *) * m);
    for(i = 0; i < m; i++)
    {
        a[i] = (int *)malloc(sizeof(int) * n);
    }
    for(i=0;i<m;i++) /*输入数组*/
        for(j=0;j<n;j++)
            scanf("%d",&a[i][j]);
    for(i=0;i<m;i++)
    {
        max=a[i][0]; /*开始时假设a[i][0]最大*/
        maxj=0; /*将列号0赋给maxj保存*/
        for(j=0;j<n;j++) /*找出第i行中的最大数*/
            if(a[i][j]>max)
            {
                max=a[i][j]; /*将本行 的最大数存放在max中*/
                maxj=j; /*将最 大数所在的列号存放在maxj中*/
            }
        flag=1; /*先假设是鞍点,以flag为1代表*/
        for(k=0;k<m;k++)
            if(max>a[k][maxj]) /*将最大 数和其同列元素相*/
            {
                flag=0; /*如果max不是同列最小,表示不是鞍点令flag1为0*/
                continue;
            }
        if(flag) /*如果flag1为1表示是鞍点*/
        {
            printf("%d %d %d\n", max, i, maxj); /*输出鞍点的值和所在行列号*/
            break;
        }
    }
    if(!flag) /*如果flag为0表示鞍点不存在*/
        printf("-1\n");
    return 0;
}

信息

递交者
类型
递交
题目
寻找数组鞍点
题目数据
下载
语言
C
递交时间
2018-07-15 21:56:19
评测时间
2018-07-15 21:56:19
评测机
分数
30
总耗时
7ms
峰值内存
256.0 KiB