幼儿园里,有3个小朋友编号分别是1、2、3,他们按自己的编号顺序围坐在一张圆桌旁,每个小朋友的面前分别有8、9、10颗糖果。现在做一个分糖果游戏,从1号小朋友开始,将自己的糖果平均分成三份(如果有多余的糖果,则自己立刻吃掉),自己留一份,其余两份分给相邻座位的两个小朋友。接着,2号、3号小朋友也同样这么做。请问一轮后,每个小朋友面前分别有多少糖果? 写出代码
时间: 2023-04-05 17:00:52 浏览: 302
092 分糖果 C语言源代码文件
我可以回答这个问题。一轮后,每个小朋友面前分别有9颗糖果。
以下是代码实现:
#include <stdio.h>
int main() {
int candies[3] = {8, 9, 10}; // 每个小朋友面前的糖果数
int i, j, k; // 循环计数器
int temp; // 临时变量,用于交换数值
// 进行一轮分糖果游戏
for (i = 0; i < 3; i++) {
j = (i + 1) % 3; // 计算相邻座位的小朋友编号
k = (i + 2) % 3; // 计算另一个相邻座位的小朋友编号
temp = candies[i] / 3; // 计算每个小朋友应该分得的糖果数
candies[i] -= temp * 2; // 自己留一份,其余两份分给相邻座位的两个小朋友
candies[j] += temp;
candies[k] += temp;
}
// 输出每个小朋友面前的糖果数
for (i = 0; i < 3; i++) {
printf("小朋友%d面前有%d颗糖果\n", i+1, candies[i]);
}
return 0;
}
阅读全文