永发信息网

pascal编程关于马鞍数的问题

答案:5  悬赏:60  手机版
解决时间 2021-04-23 21:50

描述

求一个5×5数阵中的马鞍数,输出它的位置。所谓马鞍数,是指在行上最小而在列上最大的数。如:
    5 6 7 8 9
    4 5 6 7 8
    3 4 5 2 1
    2 3 4 9 0
    1 2 5 4 8
1行1列上的数就是马鞍数。

输入

输入数阵中的25个整数

输出

如果该数阵有马鞍数,则输出其位置与数值,每个一行,输出格式为“(行号,列号):数值”;若无马鞍数,则输出“NO”

样例输入

5 6 7 8 9
4 5 6 7 8
3 4 5 2 1
2 3 4 9 0
1 2 5 4 8

样例输出

(1,1):5

 

这是题目

解答的时候只想到死算的方法,就是设25个变量

有没有更方便的方法?

pascal语言

最佳答案
var n,m,i,j,g,k,f,h,y:integer;a:array[0..10,0..10]of integer;
begin
readln(n,m);
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);
for i:=1 to n do
for j:=1 to m do
begin
for g:=1 to n do
if a[i,j]>=a[g,j] then f:=f+1;
if f=n then
for k:=1 to m do
if a[i,j]<=a[i,k] then h:=h+1;
if h=m then writeln('(',i,',',j,')',':',a[i,j]) else y:=y+1;
f:=0;h:=0;
end;
if y=m*n then writeln('NO');
end.标程
全部回答
`告诉你主要思想就行了:就是先找每一行中的最小,记录他的值和他的列坐标,再在他的这一列当中,判断他是不是当前列中最大的一个,如果是,那么就输出,加个break,如果不是,则继续判断

用二维数组

a:array[1..5,1..5] of 1nteger

用数组会方便一点

只要把每行最小的数求出,每列最大的数求出,用一个二重循环比较一下,如果一个数既是行最小,又是列最大,那就是了,如果没有,就输出NO。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
奥迪有款车~求车型~打过广告的~顶篷可以打开
什么是IT?读IT贵吗?
沈阳炮兵学院,大连警校,辽宁分数线?假如能
关于回收站里的东西删除后能否回复的问题
一道超难的计算题
DNF里气功怎么加点
表示不想在世上的句子,有一句名言一直在激励
忽然间想学动画制作,不知道怎么用Flash8。求
最近烟台有招普工的厂吗?要工资待遇不错的。
QQ会员在QQ空间有用吗
我的QQ被人知道了;怎么样才可以开QQ的时候要
2014年世界杯冠军是哪个国家
为什么QQLIYE上歌有歌词,而QQ音乐却没有
跪求去逗偏方
电脑硬件 耳麦没声音!
推荐资讯
最近什么品牌的电脑产品较好和优越
世界公认的文明古国有哪些
冒险岛挂机锁台
我很在乎他,可是他却不在乎我
我喜欢的人,不喜欢我,我该怎么办啊?
什么叫武大郎
哪位朋友帮我制订一份高三复读计划?
苹果广告印刷在什么地方啊,我要过去处理事情
六年级上学期数学题
曾轶可在上海那个演唱会是做了什么另人感动的
马拉松长跑来源于马拉松战役,它的**地是
我是1988年农历10月12生的,女,想占卜一下爱
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?