实训一
2018-12-13 15:54 QM! 阅读(192) 评论(0) 编辑 收藏 举报码云地址:https://gitee.com/iseekun99/training_a_golden_point
题目:黄金点
阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫“黄金点”的游戏:
N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0分。记录每一次游戏每名同学的数字和分数。
设计思路:从控制台输入N个同学进行游戏,每位同学需要输入数字,求出黄金点G,用Math.abs(x)取最靠近G的绝对值,得到最大和最小值,当同学输入的数字与G值相差与最大值相等时,得到-2分,与最小值相等时得到N分,其他同学均的0分。
import java.util.*; public class HJD { public static void main(String[] args) { //int total[]=new int[100]; int b =100; double value[]=new double[100]; int grade[][]=new int[100][100]; System.out.println("****黄金点****"); for(int j=1;j<=100;j++){ Scanner HJD =new Scanner(System.in); Scanner HJD1 =new Scanner(System.in); System.out.println("输入玩家人数:\n当玩家人数为0时结束游戏"); //for(int j=1;j<=100;j++){ int n=HJD1.nextInt();//输入玩家人数 if(n==0){break;} int sum=0; for (int i=0;i<n;i++) { int h=i+1; System.out.print("第"+h+"名同学:"); int m=HJD1.nextInt(); value[i]=m; sum+=m; } //System.out.print(sum); double G=(sum/n)*0.618; double max=0.0; double min=Math.abs(value[1]-G); System.out.println(G); for(int l=1;l<=n;l++) { if(Math.abs(value[l]-G)>=max) { max=Math.abs(value[l]-G); } if(Math.abs(value[l]-G)<=min) { min=Math.abs(value[l]-G); } } //System.out.println(max); //System.out.println(min); for(int m=1;m<=n;m++) { if(Math.abs(value[m]-G)==max) { grade[j][m]=-2; //System.out.println("最远"+grade[j][m]); } if(Math.abs(value[m]-G)==min) { grade[j][m]=n; //System.out.println("最近"+grade[j][m]); } if(Math.abs(value[m]-G)!=max&&Math.abs(value[m]-G)!=min) { grade[j][m]=0; //System.out.println("其他"+grade[j][m]); } } for(int p=0;p<=n-1;p++) { int q=p+1; System.out.println("第"+q+"名游戏玩家所得分数为:"+grade[j][p]); } } System.out.println("****游戏结束***"); } }
运行结果:
小结感受:经过两天的实训发现自己掌握的知识太欠缺,通过和伙伴的合作解决了很多问题,是一次知识积累与运用 创造的过程, 今后要好好学习 认真写笔记 认真听课 认真学习。
姓名 | 风格 | 团队贡献 | 优点 | 缺点 | 希望对方提高的地方 | 口头禅 |
胡文媛 | 眉清目秀 | 提供思路 |
认真理智 |
优点太多 | 再细心一点 | 知道了知道了 |
曲梦 | 开朗乐观 | 实际操作 | 团结活力 | 知识点掌握欠缺 | 多练习多操作 | 知道了知道了 |