学习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的适用对象。

原文地址:https://www.cnblogs.com/SirNie/p/13280735.html