题目:给定一个 n x n 矩阵,其中每行和每列元素均按升序排序,找到矩阵中第k小的元素。 请注意,它是排序后的第k小元素,而不是第k个元素
以下属于自己调试总结,若有不同,乐意听从,借鉴
int main()
{
// 由于数组的定义时的下表不能为变量,所以牛客网中,若要求必须要求输入下表时,可用scanf输入,
//也可直接在定义数组时,赋予初始常量值,系统会自动进行替换鉴别
//但其它地方要用到下表值,可在定义变量并给初始化值,也可手动直接给值,例如这道题
int n=5,i,j,k,temp;
scanf("%d",&k);
//scanf("%d",&n);//这句可省略
int M[5*5];//矩阵当成一维数组, 常量5,牛客网再调试时会自己进行替换
for(i=0;i<n*n;i++)
{
scanf("%d",&M[i]);
}
for(i=1;i<n*n-1;i++)
{
for(j=i;j<n*n-1;j++)
{
if(M[j]<M[i])
{
temp=M[j];
M[j]=M[i];
M[i]=temp;
}
}
}
printf("%d", M[k - 1]);
}