一维数组(应用) ——老鹰抓小鸡
任务描述
编写一个程序,模拟 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;
}
总结
代码通过循环模拟了队伍位置的变化,并输出了每次变化后的队伍排列。通过这次练习,我加深了对数组操作和循环控制的理解。同时,我也意识到在编写代码时,清晰的逻辑和良好的代码风格是非常重要的。
全部评论
相关推荐
点赞 评论 收藏
分享
09-28 18:15
门头沟学院 单片机
rndguy:个人思路,抛砖引玉。
要我的话我先问清楚需求:要什么精度,什么速度,什么环境。
如果精度要求很低,平台也有点柔性的话,只需要输出pwm,然后开个中断记录各多少个脉冲,如果脉冲时间不对齐了就反馈控制电流加减就行。要求同步要求稍微高点的话可以在脉冲间做个线性插值,同步精度会高些。
但总体来说,如果直流有刷只有脉冲没有好的编码器的话很难做精准定位什么的(除非用一些电机磁路结构相关的奇技淫巧如高频注入什么的),所以要求更高就需要大量参数辨识和校准,那就慢多了。 点赞 评论 收藏
分享
查看21道真题和解析