zoukankan      html  css  js  c++  java
  • 学习Java第五天

    1.学习内容

    做了10个二维数组的题目,7个简单的二维数组题目(个人觉得较为简单,没有写出)

    对二维数组的更深理解,对tic-tac-toe的编写:

    首先要列出矩阵:

    final int SIZE = 3;                    //读入矩阵
     int[][] broad = new int[SIZE][SIZE];
     boolean gotResult = false;
     int numOfX = 0;
     int numOfO = 0;
     for(int i = 0;i<SIZE;i++)
     {
      for(int j = 0;j<SIZE;j++)
      {
       broad[i][j] = in.nextInt();
      }
     }

    再检查行,检查列:

    for(int i = 0;i < SIZE; i++)             //检查行
     {
      numOfX = 0;
      numOfO = 0;
      for(int j = 0;i < SIZE;i++)
      {
       if(broad[i][j]==1)
       {
        numOfX++;
       }
       else
       {
        numOfO++;
       }
      }
      if(numOfX == SIZE || numOfO == SIZE);
      {
       gotResult = true;
       break;
      }
      
      
      if(!gotResult)                   //检查列
      {
       for(int i = 0;i < SIZE; i++)            
       {
        numOfX = 0;
        numOfO = 0;
        for(int j = 0;i < SIZE;i++)
        {
         if(broad[j][i]==1)
         {
          numOfX++;
         }
         else
         {
          numOfO++;
         }
        }
        if(numOfX == SIZE || numOfO == SIZE);
        {
         gotResult = true;
         break;
        }
       }

    再对对角线进行检查:

    if(!gotResult)         //主对角线
       {
        numOfX = 0;
        numOfO = 0;
        for(int i = 0;i < SIZE; i++)            
        { 
         if(broad[j][i]==1)
         {
          numOfX++;
         }
         else
         {
          numOfO++;
         }
        }
         if(numOfX == SIZE || numOfO == SIZE);
         {
          gotResult = true;
         }
       }
       
       
       if(!gotResult)           //次对角线
       {
        numOfX = 0;
        numOfO = 0;
        for(int i = 0;i < SIZE; i++)            
        { 
         if(broad[i][SIZE-i-1]==1)
         {
          numOfX++;
         }
         else
         {
          numOfO++;
         }
        }
         if(numOfX == SIZE || numOfO == SIZE);
         {
          gotResult = true;
         }
       }

    输出结果:

    if(gotResult)
       {
        if(numOfX == SIZE)
        {
         System.out.println("X WIN");
        }
        else
        {
         System.out.println("O WIN");
        }
       }

    题目:期末考试结束,班主任拿到了本班学生的成绩汇总表,由m行n列组成(本班共有m名学生,本学期有n门课程),每行是一个同学的n门课程成绩,请编写程序,计算并输出每门课的平均分,结果保留2位小数。

    (个人做的时候当成6名学生,3门课程)

    in = new Scanner(System.in);  
      int m=in.nextInt();  
      int n=in.nextInt();  
      int[][] a = new int[m+n][n+m];  
      for(int i=0; i<m; i++)  
      {   
       for(int j=0; j<n; j++)   
       {    
        a[i][j]=in.nextInt();   
        }  
       }  
      for(int i=0; i<n; i++)  
      {   
       double sum=0;   
       for(int j=0; j<m; j++)   

       {    
        sum += a[j][i];   
        }    
       sum /= m;   
       System.out.printf("%.2f",sum);   
       if(i!=n-1)    
        System.out.print(" ");  
       }

    2.今天所遇到的困难:

    对于二维数组做杨辉三角,对内层循环没有理解;

    一个二维数组的名词:遍历  ,不太理解,不知道什么时候,什么情况下可以用遍历。

    3.明天要学习的内容:Java的适用对象。

  • 相关阅读:
    Makefile文件(五)_使用变量
    Makefile文件(四)_书写命令
    Makefile文件(三)_书写规则
    Makefile文件(二)_总述
    Makefile文件(一)_介绍
    select、poll和epoll
    LintCode 子树
    LintCode 字符串查找
    LintCode 用栈实现队列
    LintCode 丑数
  • 原文地址:https://www.cnblogs.com/SirNie/p/13280735.html
Copyright © 2011-2022 走看看