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開始 的格式輸出鞍點的位置。如果鞍點不...