解释以下c语言程序每一行的含义,解释参数与函数功能
void freeTravel(int m, int n) {
int circle[m];
int i;
for (i = 0; i < m; i++) {
circle[i] = 1;
}
int index = 0, count = 0;
while (count < m - 1) {
for (i = 1; i < n; i++) {
index = (index + 1) % m;
if (circle[index] == 0) {
i--;
}
}
circle[index] = 0;
printf("%d ", index + 1);
count++;
index = (index + 1) % m;
}
printf("最初编号为%d的游客获得免费旅行服务。\n", index + 1);
}