复盘:
1. 围成一个圈,最后一个孩子没有考虑全面,轮到他时,第一个孩子糖果数量已经发生改变,需要临时变量保存;
2. DevC++调试时,左上角查看变量;
参考代码:
#include<stdio.h> int main(){ int n; scanf("%d",&n); int stu[n]; for(int i=0;i<n;i++){ scanf("%d",&stu[i]); //遇到空格就停止 } int sum=0; //用于保存老师补发的糖果数 while(1){ int stu_sum = 0; //用于保存总的糖果数 int num_0 =stu[0]; for(int i=0;i<n;i++){ if(i==n-1) //**最后一个孩子应该受到第一个孩子的 但是轮到第一个孩子的时候第一个孩子糖果已经变了 stu[i] = stu[i]+num_0/2-stu[i]/2; else stu[i] = stu[i]+stu[i+1]/2-stu[i]/2; //左手出右手进之后每个孩子手中糖果数 if(stu[i]%2!=0){ //如果为奇数,老师补发一个 stu[i]++; sum++; } stu_sum +=stu[i]; } int aver = stu_sum/n; //糖果平均数 int t=0; //查看有多少个人手中糖果数量为平均数 for(int j=0;j<n;j++){ if(stu[j]==aver) t++; } if(t==n) //如果每个孩子都为平均数,达到目的,退出循环 break; } printf("%d",sum); return 0; }
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:658 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:611 |
C语言训练-尼科彻斯定理 (C语言代码)浏览:509 |
C语言程序设计教程(第三版)课后习题8.4 (C语言代码)浏览:631 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:565 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:583 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:651 |
1012题解浏览:938 |
局部变量作函数返回值的问题浏览:1029 |
计算质因子 (C语言代码)浏览:778 |