Java的二维数组的应用及杨辉三角的编写

(1) 编写一个程序,生成一个10*10的二维随机整数数组,并将该数组的每行最大值保存于一个一维数组中,将每列平均值保存于另外一个一维数组中并分别输出。

(2) 编程输出杨辉三角的前10行。

找出一个,即该位置上的元素在该行上最大,在该列上最小(注:一个二维数组也可能没有这样的鞍点)。

/**
*
* @author liuhui
*@version Java上机实验三
*@time 2016.10.30
*/

public class javatest2 {
  public static int line = 0,row = 0;
  public static void main(String[] args) { //主函数
  int b[][] = array();
  int c[] = linearArray(b);
  double d[] = average(b);
  printArrayOne(b);
  System.out.println();
  printArrayTwo(c);
  System.out.println();
  printArrayTwo(d);
  System.out.println();
  triangle aTriangle = new triangle();

  aTriangle.print();
  int f[] = saddle(b, c);
  for(int i=0;i<f.length;i++)
  {
    if(f[i]==-1)
    break;
  else
    System.out.print(f[i]+" ");
  }

}

public static int[][] array() //获得随机二维数组
{
  int a[][] = new int[10][10];
  for(int i=0;i<10;i++)
  {
    for(int j=0;j<10;j++)
    {
      int r = (int) (Math.random()*10);
      a[i][j] = r;
     }
   }
  return a;
}
public static void printArrayOne(int a[][]) //打印二维数组
{
  for(int i=0;i<10;i++)
  {
    System.out.println();
    for(int j=0;j<10;j++)
    {
       System.out.print(a[i][j]);  
       System.out.print(" ");
    }
  }
  System.out.println();
}
public static void printArrayTwo(int a[]) //打印一维数组
{
  for(int i=0;i<10;i++)
  {
    System.out.print(a[i]+" ");
  }
}
public static void printArrayTwo(double a[])
{
  for(int i=0;i<10;i++)
  {
  System.out.print(a[i]+" ");
  }
}
public static int[] linearArray(int a[][]) //求每行数组的最大值
{
  int max = 0;

  int b[] = new int[10];
  for(int i=0;i<10;i++)
  {
    for(int j=0;j<10;j++)
    {
      if(max<a[i][j])
      {
        max = a[i][j];
        line = i;
        row = j;
      }
    }
    b[i] = max;
    max = 0;
  }
  return b;
}
public static double[] average(int a[][]) //求每列数组的平均数
{
  double b[] = new double[10];
  double sum = 0.0;
  for(int i=0;i<10;i++)
  {
    for(int j=0;j<10;j++)
    {
      sum = sum +a[i][j];
    }
    b[i] = sum/10;
    sum = 0.0;
  }
  return b;
}
public static int []saddle(int a[][],int b[]) //判断鞍点
{
  int c[] = new int [10];
  int m = 0;
  boolean k = true;
  for(int i=0;i<10;i++)
  {
    for(int j=0;j<10;j++)
    {
      if(b[i]>a[j][row])
      {
        k = false;
        break;
      }
    }
    if(k==true)
    {
      c[m] = b[i];
      m++;
    }
  }
  if(k==false)
  {
    System.out.println("没有鞍点");
    c[0] = -1;
  }
  return c;
  }
}

class triangle{ //做杨辉三角
public void print()
  {
    int b[][] = new int[10][];
    for(int i=0;i<10;i++)
    b[i] = new int[i+1];
    for(int i=0;i<10;i++)
    {
      for(int j=0;j<b[i].length;j++)
      {
        if(i==0||j==0||j==b[i].length-1)
          b[i][j] = 1;
        else
          b[i][j] = b[i-1][j-1] + b[i-1][j];
      }
     }

     for(int i=0;i<10;i++)
      {
        for(int k=9-i;k>=1;k--)
        System.out.print(" ");
        for(int j=0;j<i+1;j++)
        {
          System.out.print(b[i][j]+" ");
         }
        System.out.println();
      }

    }
}

时间: 2024-08-02 02:45:10

Java的二维数组的应用及杨辉三角的编写的相关文章

采用一维数组输出等腰三角形的杨辉三角

采用一维数组输出等腰三角形的杨辉三角 心得体会: 在网上查询了杨辉三角的方法,刚开始用在程序中直接定义n的方式输出杨辉三角,后来查询到从键盘输入n的方法,在调试程序时有很多错误的地方,如数组未定义等问题. 原文地址:https://www.cnblogs.com/wlyxjj/p/10630796.html

6、JAVA基础-二维数组 及 面向对象理解

1:二维数组(理解) (1)元素是一维数组的数组. (2)格式: A:数据类型[][] 数组名 = new 数据类型[m][n]; B:数据类型[][] 数组名 = new 数据类型[m][]; C:数据类型[][] 数组名 = new 数据类型[][]{{...},{...},{...}}; D:数据类型[][] 数组名 = {{...},{...},{...}}; (3)案例(掌握): A:二维数组的遍历 B:二维数组的求和 C:杨辉三角形 2:两个思考题(理解) (1)Java中的参数传递

JAVA:二维数组

一.二维数组相关语法 /* 二维数组:就是元素为一维数组的一个数组. 格式1: 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组. n:表示每一个一维数组的元素有多少个. 注意: 以下格式也可以表示二维数组 a:数据类型 数组名[][] = new 数据类型[m][n]; b:数据类型[] 数组名[] = new 数据类型[m][n]; */ class Array2Demo { public static void main(String[]

java定义二维数组的几种写法

//定义二维数组写法1 class numthree{              public static void main(String[] args)    {              float[][] numthree;//定义一个float类型的2维数组              numthree=new float[5][5];//为它分配5行5列的空间大小 numthree[0][0]=1.1f;//通过下标索引去访问1行1列=1.1              numthre

69期-Java SE-005_二维数组、综合练习-001-002

Test.java public class Test { public static void main(String[] args) { int[] array = {73,80,62,93,96,87}; //求最大值 int max = array[0]; for(int i=1;i<array.length;i++) { if(array[i]>max) { max = array[i]; } } System.out.println("数组中的最大值是"+max

题目一:使用Java实现二维数组中的查找

考点:数组 题目:二维数组中的查找 描述:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 方式一:选择从左下角开始搜寻,因为选择在左下角搜寻的话,如果目标值大于搜索值,那么就向右继续搜索,如果目标值小于搜索值,那么就向上继续搜索.在左上角就无法形成这样的判断.时间复杂度为:0(lgn) package cn.imooc.java2; public class Solution

晓莲说-何不原创:java 实现二维数组冒泡排序

新手从业路-为自己回顾知识的同时,也希望和大家分享经验: 话不多说,上代码 public class 冒泡排序 { /**     * @param admin     * @2017.12.4     */    public static void main(String[] args) {       int[][] array=new int[10][3];    //新建一个二维数组              //对数组进行赋值(以日期为例)       array[0][0]=201

java基础 ---- 二维数组

--------   多维数组 之二维数组 三维以上的就很少使用了主要使用的就是二维数组,从j内存的分配原理角度来讲只有一位数组 -------  二维数组 一维数组的就是用下标标识数组元素的位置 二维数组实际上就是一个一维数组,他的每一个元素又是一个一维数组 ---  存储分布 实现方式 原文地址:https://www.cnblogs.com/obge/p/10741016.html

Java Array二维数组使用

二维数组:元素为一维数组的数组 package myArray.arrayarray; /* *二维数组:元素为一维数组的数组 * * 定义格式: * A:数组类型[][] 数组名: (推荐用法) * B:数组类型 数组名[][]; * C:数组类型[] 数组名[]; * 初始化: * A:动态初始化 * 数据类型[][] 数组名 = new 数据类型[m][n]; * m表示二维数组中一维数组的个数 * n表示一维数组的个数 * B:静态初始化 * 数据类型[][] 数组名 = new 数据类