一维数组(应用) ——老鹰抓小鸡
任务描述
编写一个程序,模拟 n 位小朋友玩老鹰抓小鸡的游戏。狐狸老师作为“母鸡”,排在队伍的第一个,其他 n-1 个小朋友作为“小鸡”。程序需要模拟 k 次位置变化的过程,每次“母鸡”需要排到队伍最后成为“小鸡”,让第二位小朋友成为新的“母鸡”。
输入输出要求
输入: 两个整数 n 和 k,表示小朋友的数量和位置变化的次数。
输出: 每行输出每一次的位置变化后的队伍排列。
代码实现
cpp
#include <stdio.h>
int main() {
int n, k;
scanf("%d %d", &n, &k);
int children[n];
for (int i = 0; i < n; i++) {
children[i] = i + 1;
}
for (int step = 1; step <= k; step++) {
printf("%d: ", step);
for (int i = 0; i < n; i++) {
if (i > 0) {
printf(" ");
}
printf("%d", children[i]);
}
printf("\n");
int first = children[0];
for (int i = 0; i < n - 1; i++) {
children[i] = children[i + 1];
}
children[n - 1] = first;
}
return 0;
}
总结
代码通过循环模拟了队伍位置的变化,并输出了每次变化后的队伍排列。通过这次练习,我加深了对数组操作和循环控制的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
编写一个程序,模拟 n 位小朋友玩老鹰抓小鸡的游戏。狐狸老师作为“母鸡”,排在队伍的第一个,其他 n-1 个小朋友作为“小鸡”。程序需要模拟 k 次位置变化的过程,每次“母鸡”需要排到队伍最后成为“小鸡”,让第二位小朋友成为新的“母鸡”。
输入输出要求
输入: 两个整数 n 和 k,表示小朋友的数量和位置变化的次数。
输出: 每行输出每一次的位置变化后的队伍排列。
代码实现
cpp
#include <stdio.h>
int main() {
int n, k;
scanf("%d %d", &n, &k);
int children[n];
for (int i = 0; i < n; i++) {
children[i] = i + 1;
}
for (int step = 1; step <= k; step++) {
printf("%d: ", step);
for (int i = 0; i < n; i++) {
if (i > 0) {
printf(" ");
}
printf("%d", children[i]);
}
printf("\n");
int first = children[0];
for (int i = 0; i < n - 1; i++) {
children[i] = children[i + 1];
}
children[n - 1] = first;
}
return 0;
}
总结
代码通过循环模拟了队伍位置的变化,并输出了每次变化后的队伍排列。通过这次练习,我加深了对数组操作和循环控制的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
全部评论
相关推荐
点赞 评论 收藏
分享
牛客96609213...:疯狂背刺,之前还明确设置截止日期,还有笔试,现在一帮人卡在复筛,他反而一边开启扩招,还给扩招的免笔试,真服了,你好歹先把复筛中的给处理了再说 点赞 评论 收藏
分享
查看15道真题和解析
