代码改变世界

01王雪莲-17董琪-实训一

2018-12-13 14:43  wxl!  阅读(189)  评论(0编辑  收藏  举报

:码云代码--https://gitee.com/ddongqi/sx1

二:照片

三:标题--黄金点

        阿超的课都是下午两点钟,这时班上不少的同学都昏昏欲睡,为了让大家兴奋起来,阿超让同学玩一个叫“黄金点”的游戏:

       N个同学(N通常大于10),每人写一个0~100之间的有理数 (不包括0或100),交给裁判,裁判算出所有数字的平均值,然后乘以0.618(所谓黄金分割常数),得到G值。提交的数字最靠近G(取绝对值)的同学得到N分,离G最远的同学得到-2分,其他同学得0

分。记录每一次游戏每名同学的数字和分数。

解题思路:

  • 从控制台输入玩家个数,游戏局数
  • 输入的数不符合要求,则显示重新输入,将输入的数放到sum,求出G
  • 用绝对值求出 和G最近最远,给出相应分数
  • 求出总分
  • 输出胜利,失败

 

import java.util.Scanner;

public class Main {
     public static void main(String[] args){
    
//输入玩家个数 游戏局数
     System.out.println("请输入大于10的游戏人数:");
     Scanner reader=new Scanner(System.in);  
     int N=reader.nextInt();
     System.out.println("游戏局数:");
     int b=reader.nextInt();
    

     
     
        Scanner scanner=new Scanner(System.in);
        double sum;
        double max,min;
        int maxzf=0;
        int minzf=0;
        int []zf=new int[100];   
        double []v=new double[100];
        int [][]grade=new int[100][100];
        
        
        for(int j=1;j<=b;j++)
        { 
            sum=0.0;
            max=0.0;
            System.out.println("第"+j+"轮游戏");
            for(int i=1;i<=N;i++)
            {
                System.out.print("请玩家"+i+"输入数字:");
                double num=scanner.nextDouble();//玩家给出数字
                while(num>=100||num<0){
                System.out.println("请重新输入");
                 num=scanner.nextDouble();
                }
                
                v[i]=num;
                sum=sum+num;//所有玩家的总分
            }
            double G=(sum/N)*0.618;//计算G值
            System.out.println("G="+G);
            min=Math.abs(v[1]-G);//MATH.ABS绝对值
 //跟G比较,最近最远
            for(int I=1;I<=N;I++)                         
            {
                if(Math.abs(v[I]-G)>=max)
                {
                    max=Math.abs(v[I]-G);
                }
            
                if(Math.abs(v[I]-G)<=min)
                {
                    min=Math.abs(v[I]-G);    
                }
                    
            }
//将得分放到适当的位置            
            for(int m=1;m<=N;m++)
            {
                if(Math.abs(v[m]-G)==max)
                {
                    grade[j][m]=-2;
                }
                else if(Math.abs(v[m]-G)==min)
                {
                    grade[j][m]=N;
                }
               else 
                {
                    grade[j][m]=0;
                }
                 System.out.println("第"+m+"名游戏玩家所得分数为:"+grade[j][m]);
            }
        }
        
        
        
//求总分    
        
        for(int p=1;p<=N;p++)
        {
            for(int q=1;q<=b;q++)
            {
                zf[p]=grade[q][p]+zf[p];
            }
            System.out.println("第"+p+"名玩家所得总分为:"+zf[p]);
        }
        
//求最大值最小值    
        for(int s=1;s<=N;s++)
        {
            if(zf[s]>=maxzf)
            {
                maxzf=zf[s];
            }
            if(zf[s]<=minzf)
            {
                minzf=zf[s];
            }
        }
//最大值最小值赋值输出        
        for(int t=1;t<=N;t++)
        {
            if(zf[t]==maxzf)
            {
                System.out.println("玩家"+t+"胜利!");
            }
            if(zf[t]==minzf)
            {
                System.out.println("玩家"+t+"失败!");
            }
        }
        
    }
}

 

四:运行结果截图

 

五:小结感受

     经过这两天努力,还好最终实现了想要的结果。任何人都不是完美的, 都有可以改进的空间。 在此过程中,我们可能和些许摩擦,但更多的是一起寻找新的解决方法。人人都说:“三个臭皮匠赛过诸葛亮“,虽然我俩都不太聪明但是只要

努力总会有回报的。很多时候,在我心烦气躁时,她会比较理智的解决,这也是我从中收获除了知识外,更大的进益。“人无完人”,每个人都有缺点,但是不可否认得是,每个人身上的闪光点都不容忽视,都是独一无二的。我觉得老师之

所以让我们团队合作,就是让我们看到自己的不足,学习他人的思路和优点。合作共赢,不仅现在需要,以后工作更加重要。当然,当我们相互争论时,知识点也同时扎根在我们的大脑里,比平时更加深刻。从而达到了团队学习的意义。

   希望以后能有更多这样的机会,吸取他人的优点知识,发表自己的观点,进而填补自己不足的知识网,达到1+1>2!

六:评价伙伴

姓名  风格     团队贡献 优点 缺点 希望ta提高的地方 创作中的口头禅
董琪 大胆创新,简洁明了 收集材料,提供意见 沉着冷静 马虎 处理事情要再细心一点 没事,我们在来一次
王雪莲 雷厉风行 完善内容,查漏补缺 吃苦耐劳 不理智 希望她能理智一点 我就不信不行