PTA 實驗7 2 8 找鞍點 20分

2021-10-16 22:08:47 字數 2312 閱讀 5906

ps:初學陣列時幾個較頭疼的題目,現在重溫一下

傳送門乙個矩陣元素的「鞍點」是指該位置上的元素值在該行上最大、在該列上最小。

本題要求編寫程式,求乙個給定的n階方陣的鞍點。

輸入格式:

輸入第一行給出乙個正整數n(1≤n≤6)。隨後n行,每行給出n個整數,其間以空格分隔。

輸出格式:

輸出在一行中按照「行下標 列下標」(下標從0開始)的格式輸出鞍點的位置。如果鞍點不存在,則輸出「none」。題目保證給出的矩陣至多存在乙個鞍點。

輸入樣例1:

417

4148

3616

1207

89

輸出樣例1:

2

1

輸入樣例2:

217

41

輸出樣例2:

none
解法1

以這個輸入為例.

1 7 4 1

4 8 3 6

1 6 1 2

0 7 8 9

先遍歷第一行,找到最大的7,再遍歷7所在的列,7>6,不是鞍點→遍歷第二行,找到行最大的8,以8所在的列遍歷,8>7不是鞍點→遍歷第三行…….最後找到了第三行第二列的6;

code:

#include

intmain()

if(!flag)

}printf

("none");

return0;

}

解法2

多開兩個陣列存每行最大和每列最小.

最後如果匹配上就輸出,沒匹配上就none;

code:

#include

#include

int a[7]

[7],maxx[7]

,minn[7]

;//分別存每一行最大以及每一列最小

intmain()

for(

int i=

0;i)//開始配對,如果配對成功輸出並且結束

for(

int j=

0;j(minn[i]

==maxx[j]

)printf

("none");

}

實驗7-2-5 判斷上三角矩陣

code:

#include

int a[11]

[11];

intmain()

printf

("yes\n");

end:

;//因為不想寫標記,就直接使用goto了

}}

實驗7-2-9 螺旋方陣

螺旋方陣傳送門

解法借鑑大佬的舒適解答:

大佬的舒適解答

解法①碰壁改向法

#include

intmain()

}elseif(

1==dir)

}elseif(

2==dir)

}elseif(

3==dir)}}

for(i=

0;i)}

解法②:找規律遞迴法

#include

intget

(int x,

int y,

int lt,

int n)

intmain

(void

)return0;

}

同類題

螺旋矩陣-pat真題

螺旋折線

用迴圈的方法只能ac小資料(效率過低),一旦遇上大資料只能找規律了,我就寫著玩一玩

#include

struct bandb1,b2,b3,b0;

intmain()

}else

if(dir==1)

}else

if(dir==2)

}else

if(dir==3)

}}printf

("%d"

,dis)

;}

實驗7 2 8 找鞍點 20分

乙個矩陣元素的 鞍點 是指該位置上的元素值在該行上最大 在該列上最小。本題要求編寫程式,求乙個給定的n階方陣的鞍點。輸入格式 輸入第一行給出乙個正整數n 1 n 6 隨後n行,每行給出n個整數,其間以空格分隔。輸出格式 輸出在一行中按照 行下標 列下標 下標從0開始 的格式輸出鞍點的位置。如果鞍點不...

實驗7 2 8 找鞍點 20分

乙個矩陣元素的 鞍點 是指該位置上的元素值在該行上最大 在該列上最小。本題要求編寫程式,求乙個給定的n階方陣的鞍點。輸入格式 輸入第一行給出乙個正整數n 1 n 6 隨後n行,每行給出n個整數,其間以空格分隔。輸出格式 輸出在一行中按照 行下標 列下標 下標從0開始 的格式輸出鞍點的位置。如果鞍點不...

浙大PTA 實驗7 2 8 找鞍點

乙個矩陣元素的 鞍點 是指該位置上的元素值在該行上最大 在該列上最小。本題要求編寫程式,求乙個給定的n階方陣的鞍點。輸入格式 輸入第一行給出乙個正整數n 1 n 6 隨後n行,每行給出n個整數,其間以空格分隔。輸出格式 輸出在一行中按照 行下標 列下標 下標從0開始 的格式輸出鞍點的位置。如果鞍點不...