一、实验目的 |
|
二.实验环境 |
Idea |
三、实验内容与步骤 |
6-1:字母逆序输出 输人一个小写字母,以该字母为第一个字母按字母表逆序输出所有26个小写字母。例如,输入“d”时,输出“dcbazyxwvutsrqpc nmlkjihgfe"。如果输入的不是小写字母,则输出error。 |
package objtct;
import java.util.Scanner;
public class A {
public static void main(char ch){
char[]tables=new char[26];
for(int i=0;i<tables.length;){
if (ch>='a'){
tables[i]=ch;
ch--;
i++;
}
else
ch='z';
}
System.out.println(tables);
}
public static void main(String[] args){
Scanner scn=new Scanner(System.in);
char ch=scn.next().charAt(0);
scn.close();
if(ch<'a'||ch>'z')
System.out.println("error");
else
main(ch);
}
} 6-2:圆环四邻数v1 输人一个小写字母,以该字母为第一个字母按字母表逆序输出所有26个小写字母。例如,输入“d”时,输出“dcbazyxwvutsrqpc nmlkjihgfe"。如果输入的不是小写字母,则输出error。 import java.util.Scanner;
class Annulus {
private int[] nums={25,17,59,37,90,29,67,88,47,51,66,39};
public Annulus(){}
public int calSum(int i){
int sum=0;
for(int j=0;j<4;j++)
sum+=nums[(i+j)%12];
return sum;
}
public static void main(String[] args){
Annulus obj =new Annulus();
Scanner scn =new Scanner(System.in);
System.out.print("Please input the location:");
int loc=scn.nextInt();
scn.close();
if(loc>=0&&loc<12){
System.out.println("Sum is"+obj.calSum(loc));
}
else
System.out.println("error");
}
} 6-3:数组简单查找 已知一个整型数组,输人一个整数,查找该数在数组中第一次出现的位置(即下标),并输出该数在数组中出现的总次数。若数组中没有该数,则位置为一1.次数为。 public class A {
private int[] a={17,9,37,48,20,37,79,19,37,43};
public int firstLoc(int num){
for(int i=0;i<a.length;i++){
if(a[i]==num)
return i;
}
return -1;
}
public int times(int num){
int counter=0;
for(int i=0;i<a.length;i++){
if(a[i]==num)
counter++;
}
return counter;
}
public static void main(String[] args){
A obj =new A();
int num,idx,count;
Scanner scn=new Scanner(System.in);
System.out.print("Please input an int number:");
num=scn.nextInt();
scn.close();
idx=obj.firstLoc(num);
count= obj.times(num);
System.out.printf("loc=%d,times=%d\n",idx,count);
}
} 6-8:杨辉三角形 根据用户输入的行数,输出指定行数的杨輝三角形。例如,输人为7,则输出如图6-14所示的7行杨辉三角形。若输人的行数不是正数,直接输出error。 import java.util.Scanner;
public class A {
private int[][] arr;
public A(){}
public A(int n){
arr=new int[n][n];
int i,j;
for(i=0;i<n;i++){
arr[i][0]=1;
arr[i][i]=1;
}
for(i=2;i<n;i++)
for(j=1;j<i;j++)
arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
}
public void print(){
for(int i=0;i< arr.length;i++){
for(int j=0;j<=i;j++)
System.out.printf("%-3d",arr[i][j]);
System.out.println();
}
}
public static void main(String[] args){
Scanner scn=new Scanner(System.in);
System.out.print("输入杨辉三角:");
int n= scn.nextInt();
scn.close();
if(n<=0){
System.out.println("error");
return;
}
A obj=new A(n);
obj.print();
}
} 6-9:Excel函数模拟 import java.util.Scanner;
public class ExcelImplementation {
private int [][] arr;
public ExcelImplementation(){
int [][] a = {{61,38,58,67,46,48,39},
{63,31,20,37,62,52,40},
{40,22,29,28,33,35,31},
{68,68,32,55,23,57,41},
{33,28,45,67,80,48,56},
{61,38,58,67,46,48,39},
{63,31,20,37,62,52,40}};
this.arr=a;
}
public ExcelImplementation(int[][]a){
this.arr = a;
}
public static int sum(int[][] a,int top,int left,int bottom,int right){
int s = 0;
for (int i = top;i<=bottom;i++)
for (int j=left;j<=right;j++)
s+=a[i][j];
return s;
}
public static void main(String[] args) {
ExcelImplementation obj = new ExcelImplementation();
int top,left,bottom,right;
Scanner scn = new Scanner(System.in);
System.out.print("Input top left bottom right:");
top = scn.nextInt();
left = scn.nextInt();
bottom = scn.nextInt();
right = scn.nextInt();
scn.close();
if (top<0||top>obj.arr.length||bottom<0||bottom>obj.arr.length||top>bottom)
{
System.out.println("error");
return;
}
if (left<0||left>obj.arr[0].length||right<0||right>obj.arr[0].length||left>right){
System.out.println("error");
}
int s = ExcelImplementation.sum(obj.arr, top,left,bottom,right);
System.out.println("sum="+s);
}
} 6-10:二维码数组归一化 package objtct;
public class ArrayNormalization {
private int[][] arr;
private double[][] brr;
public ArrayNormalization() {
int[][] a = {{61, 38, 58, 67, 46, 48, 39},
{63, 31, 20, 37, 62, 52, 40},
{40, 22, 29, 28, 33, 35, 31},
{68, 68, 32, 55, 23, 57, 41},
{33, 28, 45, 67, 80, 48, 56},
{61, 38, 58, 67, 46, 48, 39},
{63, 31, 20, 37, 62, 52, 40}};
this.arr = a;
brr = new double[arr.length][arr[0].length];
}
public ArrayNormalization(int[][] a) {
this.arr = a;
brr = new double[arr.length][arr[0].length];
}
public void minmaxNormalization() {
int min, max, i, j;
for (j = 0; j < arr[0].length; j++) {
min = max = arr[0][j];
for (i = 1; i < arr.length; i++)
if (arr[i][j] < min)
min = arr[i][j];
else if (arr[i][j] > max)
max = arr[i][j];
//第j类的所有元素套用公式
for (i = 0; i < arr.length; i++)
brr[i][j] = 1.0 * (arr[i][j] - min) / (max - min);
}
}
public void printA() {
int i, j;
for (i = 0; i < brr.length; i++) {
for (j = 0; j < brr[0].length; j++)
System.out.printf("%3d", arr[i][j]);
System.out.println();
}
}
public void printB() {
int i, j;
for (i = 0; i < brr.length; i++) {
for (j = 0; j < brr[0].length; j++)
System.out.printf("%.3f ", brr[i][j]);
System.out.println();
}
}
public static void main(String[] args) {
ArrayNormalization obj = new ArrayNormalization();
obj.minmaxNormalization();
obj.printB();
}
} 6-11:矩阵乘法 import java.util.Scanner;
public class Matrix {
public static int[][] readMatrix() {
int i, j = 0, row, col;
Scanner scn = new Scanner(System.in);
System.out.println("Input rows, colums, data of array:");
row = scn.nextInt();
col = scn.nextInt();
if (row <= 0 || col <= 0)
return null;
int[][] arr = new int[row][col];
for (i = 0; i < row; i++)
for (i = 0; j < col; j++)
arr[i][j] = scn.nextInt();
scn.close();
return arr;
}
public static int[][] multiply ( int[][] a, int[][] b){
int row, col, i, j, k;
row = a.length;
col = b[0].length;
int[][] C = new int[row][col];
for (i = 0; i < row; i++)
for (j = 0; j < col; j++)
for (k = 0;
k < a[0].length; k++)
C[i][j] += a[i][k] * b[k][j];
return C;
}
public static void print ( int[][] arr){
for (int i = 0; i < arr.length; i++) {
for (int j = 0; j < arr[0].length; j++)
System.out.printf("id ",arr[i][j]);
System.out.println();
}
}
public static void main (String[] args){
int[][] a, b, C;
a = Matrix.readMatrix();
b = Matrix.readMatrix();
if (a == null||b == null || a[0].length != b.length){
System.out.println("error");
return;
}
C = Matrix.multiply(a, b);
System.out.println("Result:");
Matrix.print(C);
}
} 6-12:学生信息管理 public class A {
private String id;
private static String name;
private int[] scores;
private int sum;
public A(){}
public A(String id,String name,int ch,int math,int eng,int phy){
this.id=id;
this.name=name;
this.scores=new int[4];
this.scores[0]=ch;
this.scores[1]=math;
this.scores[2]=eng;
this.scores[3]=phy;
}
public void calSum(){
this.sum=0;
for (int each:this.scores)
this.sum+=each;
}
public void main(String[] args){
A[] arr=new A[5];
arr[0]=new A("s001","曹海",74,63,66,53);
arr[1]=new A("s002","谢媛媛",90,62,84,47);
arr[2]=new A("s003","刘山岭",83,72,84,67);
arr[3]=new A("s004","吴亦",83,67,63,49);
arr[4]=new A("s005","程荣",81,77,78,85);
for (A each:arr){
each.calSum();
System.out.printf("%s\t%d\n",each,name,each.sum);
}
}
} |
四、实验过程与分析 |
数组声明后实际上是在栈内存中保存了此数组的名称,接下来便是要在堆内存中配置数组所需的内存,其中“元素的个数”(数组的长度)是告诉编译器,所声明的数组要存放多少个元素。 多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。我们以二维数组为例看一下多维数组的初始化: |
java:学习一维数组并应用;学习二维数组并应用;
最新推荐文章于 2024-06-27 15:25:28 发布