这题写了好一会, 因为遇到一些问题
分糖分的是原来的糖果还是拿到了别人给的糖果加起来一起的?
如果是分原来的糖果之后那就要再另外那一个数组存, 数组初始为0, 那么分完之后自己的那一份应该存进另一个数组, 是加法
如果是分拿到了别人给的糖果加起来一起的, 那么分完之后不是直接在原来的数值上加, 而是覆盖, 要把原来的值覆盖
代码结果:
#include <stdio.h>
int main() {int arr[5] = {0};int eat = 0;int i;for(i = 0; i < 5; i++){scanf("%d", &arr[i]);}for(i = 0; i < 5; i++){eat = eat + arr[i]%3;//这里应该是覆盖原来的数量,因为是把所有的糖都拿出来分了然后自己留一份int share = arr[i]/3;arr[i] = share;if(i == 0){arr[i+1] = arr[i+1] + share;arr[4] = arr[4] + share;}else if(i == 4){arr[0] = arr[0] + share;arr[i-1] = arr[i-1] + share;}else{arr[i+1] = arr[i+1] + share;arr[i-1] = arr[i-1] + share;}}for(i = 0; i < 5; i++){printf("%d ", arr[i]);}printf("\n%d", eat); return 0;
}