C语言入门-第七周:作业02

原创 2016年08月30日 11:25:06

2鞍点(5分)

题目内容:
给定一个n*n矩阵A。矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数。一个矩阵A也可能没有鞍点。
你的任务是找出A的鞍点。

输入格式:
输入的第1行是一个正整数n, (1<=n<=100),然后有n行,每一行有n个整数,同一行上两个整数之间有一个或多个空格。

输出格式:
对输入的矩阵,如果找到鞍点,就输出其下标。下标为两个数字,第一个数字是行号,第二个数字是列号,均从0开始计数。
如果找不到,就输出
NO
题目所给的数据保证了不会出现多个鞍点。

输入样例:
4
1 7 4 1
4 8 3 6
1 6 1 2
0 7 8 9

输出样例:
2 1
时间限制:500ms内存限制:32000kb

#include <stdio.h>
#include <Windows.h>

int main() {

    int num[100][100] = { 0,0 };

    int n = 0;
    scanf_s("%d", &n);

    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            scanf_s("%d", &num[i][j]);
        }
    }

    int flag = 0;//判断是否有靶点
    for (int i = 0; i < n; i++) {
        int max = num[i][0];

        //找出行上最大值。此处有拓展,可判断是否有多个靶点。
        for (int j = 0; j < n; j++) {
            if (num[i][j] > max)    max = num[i][j];
        }
        //如果当前值等于行最大值,则检查是否为列最小值
        for (int j = 0; j < n; j++) {
            if (num[i][j] == max) {

                int min = num[i][j];
                //找出列的最小值
                for (int l = 0; l < n; l++) {
                    if (num[l][j] < min) min = num[l][j];
                }
                if (num[i][j] == min) {
                    //printf("存在靶点:%d,坐标:%d %d\n", num[i][j], i, j);
                    printf("%d %d\n", i, j);
                    flag = 1;
                }

            }
        }
    }

    if (flag == 0)printf("NO\n");

    system("pause");
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C语言入门-第八周:作业02

2GPS数据处理(6分)题目内容: NMEA-0183协议是为了在不同的GPS(全球定位系统)导航设备中建立统一的BTCM(海事无线电技术委员会)标准,由美国国家海洋电子协会(NMEA-The Na...
  • wxx0136
  • wxx0136
  • 2016年09月01日 18:56
  • 457

C语言入门-第二周:作业02

2信号报告(5分)题目内容: 无线电台的RS制信号报告是由三两个部分组成的: R(Readability) 信号可辨度即清晰度. S(Strength) 信号强度即大小. 其中R位于报告...
  • wxx0136
  • wxx0136
  • 2016年08月19日 11:43
  • 92

[Coursera 计算导论与C语言基础] 第七周作业

最近在利用空闲时间跟Coursera上北京大学的程序设计与算法专项课程,一共7门课程,这是第一门课计算导论与C语言基础。 编程题#1:年龄与疾病 来源: POJ (Coursera声明:在POJ上完成...

[土狗之路]coursera上C语言基础第七周作业

描述 某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理。 输入 共2行,第一行为过往病人的数目n(0 输出 每个年龄段(分四段:18以下,19-35,...

网易云课堂程序设计入门--C语言第七周:指针与字符串学习笔记

第七周:指针与字符串学习笔记 网易云课堂 程序设计入门--C语言

C语言入门-第二周:作业01

1时间换算(5分)题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8。现在,你的程序要读入一个整数,表示BJT的时和分。整数的个位和十位表示分,百位和千位表示小时。如果小...
  • wxx0136
  • wxx0136
  • 2016年08月19日 11:40
  • 193

C语言入门&JNI与地层调用——Day02_2

*04 c代码调用java代码 *05c代码回调java代码 *06 c代码回调java代码 *07 回调java的特殊方法 *08 jni常见开发流程...

【C语言/入门/源代码】02

下面所有代码都是一些简单的算法问题,是博主刚刚学习C语言时学到的几个典型算法/*Hanoi塔问题: 说明: 河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从...
  • Grevi
  • Grevi
  • 2017年01月09日 21:49
  • 155

中国大学MOOC-翁恺-C语言程序习题第七周

07-0. 写出这个数 (20) 读入一个自然数n,计算其各位数字之和,用汉语拼音写出和的每一位数字。 输入格式:每个测试输入包含1个测试用例,即给出自然数n的值。这里保证n小于10100。 ...

coursera《计算导论与C语言基础》第七周

1.年龄与疾病/*描述某医院想统计一下某项疾病的获得与否与年龄是否有关,需要对以前的诊断记录进行整理。输入共2行,第一行为过往病人的数目n(0 < n ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言入门-第七周:作业02
举报原因:
原因补充:

(最多只允许输入30个字)