插班生求位置,怎么到最后错了…

#include
int main()
{
int n,i,j,t,k=0,h;
int a1[5][4];
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
{
printf("输入原有小朋友身高:");
scanf("%d",&a1[i][j]);
}
}
int a2[20];
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
{
a2[k]=a1[i][j];
k++;
}
}
//二维换一维数组
for(i=0;i<20-1;i++)
{
for(j=0;j<20-i-1;j++)
{
if(a2[j]>a2[j+1])
{
t=a2[j];
a2[j]=a2[j+1];
a2[j+1]=t;
}
}
}
int a3[6][4];
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
{
a3[i][j]=a2[i*4+j];
}
}
//一位换二维
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
{
printf("%d ",a3[i][j]);
}
printf("\n");
}
//输入插班生
printf("输入插班生:");
scanf("%d",&h);
for(i=0;i<5;i++)
{
for(j=0;j<4;j++)
{
if(a3[i][j]>=h)
break;
}
}
if(i==5)
printf("6行1列");
else if(i<5)
printf("%d行%d列",i+1,j+1);

}

改动处见注释,供参考:

#include<stdio.h>
int main()
{
    int n, i, j, t, k = 0, h;
    int a1[5][4];
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 4; j++)
        {
            printf("输入原有小朋友身高:");
            scanf("%d", &a1[i][j]);
        }
    }
    int a2[20];
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 4; j++)
        {
            a2[k] = a1[i][j];
            k++;
        }
    }
    //二维换一维数组
    for (i = 0; i < 20 - 1; i++)
    {
        for (j = 0; j < 20 - i - 1; j++)
        {
            if (a2[j] > a2[j + 1])
            {
                t = a2[j];
                a2[j] = a2[j + 1];
                a2[j + 1] = t;
            }
        }
    }
    int a3[6][4];
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 4; j++)
        {
            a3[i][j] = a2[i * 4 + j];
        }
    }
    //一维换二维
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 4; j++)
        {
            printf("%d ", a3[i][j]);
        }
        printf("\n");
    }
    //输入插班生
    printf("输入插班生:");
    scanf("%d", &h);
    k = 0;        //修改
    for (i = 0; i < 5; i++)
    {
        for (j = 0; j < 4; j++)
        {
            if (a3[i][j] >= h) 
            {           //修改
                k = 1;  //修改
                break;  
            }           //修改
        }
        if (k) break;   //修改
    }
    if (i == 5)
        printf("6行1列");
    else if (i < 5)
        printf("%d行%d列", i + 1, j + 1);
}