请写出一下代码实在是太了,有没没有会的求指教他看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;
}