Bootstrap

java实验报告3:数组和字符串案例练习

目录

内容

利用随机1~9整数生成3*3的二维数组,使二维数组每行,每列、以及斜线上的数字之和均为15,并输出这个二维数组

按自然数从小到大的标准为顺序,对以下数组求其逆序数,并列出逆序对:

 实验小结


一、实验目的

【目的要求】

了解字符串的常用方法及数组的length属性的使用

掌握对数组的for-each循环以及对字符串的比较和运算

【注意事项】

注意电源插座的用电安全;

遵守计算机的使用注意事项;

防范病毒。

二、实验设备

电脑

window系统

JDK环境

记事本

【相关知识】

数组的语法定义:

  1. a = new int[100];
  2. str = new String[]{"黄","红","绿","白","黑","蓝","紫"};
  1. f={12.4,12.5,12.1,12.3,12.2,12.3};

二维数组的定义

  1. a = {{1,2,3},{4,5,6,},{7,8,9}}
  2. t = new int[3][3]

内容

利用随机1~9整数生成3*3的二维数组,使二维数组每行,每列、以及斜线上的数字之和均为15,并输出这个二维数组

mport java.util.Random;
public class maxtrix_15{
    public static void main(String[] args) {
        int[][] matrix = new int[3][3];
        int sum1,sum2,sum3,sum4,sum5,sum6,sum7,sum8,count=0;
        System.out.println("随机生成三个3X3矩阵:使每行,每列、以及斜线上的数字之和均为15");
        //创建矩阵
        while(true){
            for (int i = 0; i <= 2; i++) {
                for (int j = 0; j <= 2; j++) {
                    matrix[i][j] = new Random().nextInt(9) + 1;
                    matrix[1][1]=5;
                }
            }
            //行元素相加
            sum1=matrix[0][0]+matrix[0][1]+matrix[0][2];
            sum2=matrix[1][0]+matrix[1][1]+matrix[1][2];
            sum3=matrix[2][0]+matrix[1][1]+matrix[2][2];
            //列元素相加
            sum4=matrix[0][0]+matrix[1][0]+matrix[2][0];
            sum5=matrix[0][1]+matrix[1][1]+matrix[2][1];
            sum6=matrix[0][2]+matrix[1][2]+matrix[2][2];
            //对角线元素相加
            sum7=matrix[0][0]+matrix[1][1]+matrix[2][2];
            sum8=matrix[2][0]+matrix[1][1]+matrix[0][2];
            //输出矩阵
            if(sum1==sum2&&sum1==sum3&&sum1==sum4&&sum1==sum5&&sum1==sum6&&sum1==sum7&&sum1==sum8){
                count++;
                if(count<4){
                    System.out.println("第"+count+"个例子:");
                    for(int i=0;i<=2;i++)
                    {
                        for(int j=0;j<=2;j++)
                        {

                            System.out.print(matrix[i][j]+"\t");

                        }
                        System.out.println("\n");
                    }
                }else {
                    break;
                }
            }
        }
    }
}

 

通过编程实现求解三阶行列式,例如:

 

代码如下:

import java.util.Scanner;
public class det3_calculation {
    public static void main(String[] args) {
        int sum1,sum2,sum;
        int[][] a = new int[3][3];
        Scanner sc=new Scanner(System.in);
        System.out.println("输入一个三阶行列式:");
        for(int i=0;i<a.length;i++){
            for(int j=0;j<a.length;j++){
                a[i][j]=sc.nextInt();
            }
        }
        for(int i=0;i<a.length;i++){
            for(int j=0;j<a.length;j++){
                System.out.print(a[i][j]+"\t");
            }
            System.out.println("\n");
        }
        sum1=a[0][2]*a[1][0]*a[2][1]+a[0][1]*a[1][2]*a[2][0]+a[0][0]*a[1][1]*a[2][2];
        sum2=a[2][2]*a[0][1]*a[1][0]+a[2][1]*a[1][2]*a[0][0]+a[0][2]*a[1][1]*a[2][0];
        sum=sum1-sum2;
        System.out.println("这个三阶行列式的值是:"+sum);

    }
}

按自然数从小到大的标准为顺序,对以下数组求其逆序数,并列出逆序对:

代码如下:

import java.util.Scanner;
public class inversenumber {
    public static void main(String[] args) {
        int[] a=new int[6];
        int count=0;
        Scanner sc=new Scanner(System.in);
        System.out.println("输入一组数:");
        for(int i=0;i<a.length;i++){
                a[i]=sc.nextInt();
        }
        System.out.print("[");
        for(int x=0; x<a.length; x++) {
            if(x == a.length-1) {
                System.out.print(a[x]);
            } else {
                System.out.print(a[x]+", ");
            }
        }
        System.out.println("]");
        System.out.println("逆序对如下");
        for(int i=0;i<a.length;i++){
            for(int j=i+1;j<a.length;j++){
                if (a[i]>a[j]){
                    count++;
                    System.out.println("{"+a[i]+","+a[j]+"}");
                }
            }
        }
        System.out.println("逆序数值为:"+count);

    }
}

 

 实验小结

数组通常用在什么地方?

答:数组长度不可以改变,所以用于建立矩阵存储数据

数组为什么不算基本数据类型?

答:数组不算是基础数据类型的,基础的数据类型只有整形,浮点型,双精度浮点(double)字符型等,这些是基础数据类型,就是指不能在分割的类型,属于原子类型。而类似数组,集合,自定义的复杂的数据结构都不是基础数据类型。当然可以自己实现数组,数组实质就是一个顺序表,只是其中不包含一些查询插入等方法,也可以自己定义的。自己实现array那index是指向数组第一个元素的,要获取元素的话用你定义的array.element来调用。

数组中的元素类型是否可以不一样?

答:把具有相同类型的若干变量按有序的形式组织起来的一种形式。这些按序排列的同类数据元素的集合称为数组。所以,既然是数组,那它每个的元素的类型肯定是一样的。

;