C语言求解答,请写出代码实现

请写出一下代码实在是太了,有没没有会的求指教他看i换一个吧也不好
XTZ每天都穿鞋,开始的时候他有n双鞋子在鞋柜里并且编号1到n。每天早上的时候,他都穿最小编号的鞋子,每天晚上,他都把鞋子扔到鞋篮里,
如果现在鞋篮里的鞋子有n-1双的时候,XTZ才会去晒他们,然后第二天晚上的时候重新放到鞋柜中.XTZ是真的好懒。现在就问XTZ在第k天的时候穿的是那双鞋子?
Input
第一行输入T,表示共T组测试数据.(t<=5000)
每组测试数据输入两个变量n,k(2<=n<=10^4,1<=k<=10^5)
Output
输出第K天穿的那双鞋子的编号
Sample Input
3
3 7
3 6
4 9
Sample Output
3
1
2


#include <stdio.h>
#include <string.h>

typedef struct {
    int n;      //鞋子数量
    int k;      //等待时间
} Test;         //测试参数类型

//冒泡排序
void BubbleSort(int arry[],int len)
{
        int i;
        int j;
        int temp;

        for(i = 0 ; i < len - 1 ; i++)//比较次数
        {
                for(j = 0 ; j < len - 1 - i ; j++)//比较过程
                {

                        if(arry[j] > arry[j + 1]) //比较大小
                        {
                                temp=arry[j];
                                arry[j]=arry[j + 1];
                                arry[j + 1]=temp;
                        }
                }

        }

}

int main()
{
    Test input[5000] = {0};         //输入参数
    int t = 0;                      //测试组数
    int output[5000] = {0};         //输出数据
    int Shoe_cab[10000] = {0};      //鞋柜数据
    int Shoe_bask[10000] = {0};     //鞋篮数据
    int bask_num = 0;               //鞋篮数量
    int Shoe_curr = 0;              //当天鞋子编号

    scanf("%d",&t);     //获取测试组数

    for(int i = 0 ; i < t ; i++){
        scanf("%d %d",&input[i].n, &input[i].k);        //获取测试数据
    }

    for(int i = 0 ; i < t ; i++){
        //初始化鞋柜数据
        for(int j = 0 ; j < input[i].n ; j++){
            Shoe_cab[j] = j + 1;        //写入鞋子数据
        }
        //实现程序
        for(int j = 0 , x = 0 , bask_num = 0 ; j < input[i].k ; j++){
            Shoe_curr = Shoe_cab[x];        //写入当天鞋子编号
            x++;                            //更新鞋柜索引

            if(bask_num >= input[i].n - 1){                                 //判断鞋篮数量是否已满
                BubbleSort(Shoe_bask, bask_num);                            //将鞋篮数据升序排序
                memcpy(Shoe_cab, Shoe_bask, bask_num * sizeof(int));        //将鞋篮数据放回鞋柜
                bask_num = 0;                                               //清空鞋篮数量
                x = 0;                                                      //重置鞋柜索引
            }

            Shoe_bask[bask_num] = Shoe_curr;        //将当天鞋子放入鞋篮
            bask_num++;                             //鞋篮数量更新
        }

        output[i] = Shoe_curr;      //写入最终鞋子编号
    }

    for(int i = 0 ; i < t ; i++){
        printf("%d\n", output[i]);      //输出最终结果
    }

    return 0;
}