zoukankan      html  css  js  c++  java
  • 实验----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();
          }

        }
    }

  • 相关阅读:
    记第一场省选
    POJ 2083 Fractal 分形
    CodeForces 605A Sorting Railway Cars 思维
    FZU 1896 神奇的魔法数 dp
    FZU 1893 内存管理 模拟
    FZU 1894 志愿者选拔 单调队列
    FZU 1920 Left Mouse Button 简单搜索
    FZU 2086 餐厅点餐
    poj 2299 Ultra-QuickSort 逆序对模版题
    COMP9313 week4a MapReduce
  • 原文地址:https://www.cnblogs.com/liuhui5599/p/6014182.html
Copyright © 2011-2022 走看看