1. 找出数组中最大的元素
求最大数的API
public class Max |
private double max 存储最大值 |
public Max(double[]a) 构造函数,对数组进行复制性保护 |
package array1;
/** 找出数组中最大的元素-数据类型的实现
*/
public class Max
{
private double max;
private double[] b;
public Max(double[] a) //构造函数,数组是引用传递而非值传递所以进行复制性保护
{
b=new double[a.length];
for(int i=0;i<a.length;i++)
b[i]=a[i];
}
public double found()
{
max=b[0];
for(int i=0;i<b.length;i++)
if(max<b[i])
max=b[i];
return max;
}
}
package array1;
import java.util.Scanner;
/** 找出数组中最大的数组元素-测试用例
*/
public class Test
{
public static void main(String[] args)
{
int m;
double n;
Scanner sc=new Scanner(System.in);
System.out.println("请输入数组的元素个数:");
m=sc.nextInt();
double[] o=new double[m];
System.out.println("请输入"+m+"个元素:");
for(int i=0;i<m;i++)
o[i]=sc.nextDouble();
Max max=new Max(o); //初始化一个对象,调用构造函数
n=max.found();
System.out.print("最大值:");
System.out.println(n);
sc.close(); //关闭输入流
}
}
2. 计算数组元素的平均值
计算数组平均值的API
public class Avg |
private int n 计数 private double sum 存储累加的数 |
public void add(double b) 计算个数,累加求和 public double mean() 取平均 public String toString() 重写toString()方法 |
package array2;
/**计算数组的平均值(没有保存数据值)-数据类型的实现
*/
public class Avg
{
private int n;
private double sum;
public void add(double b)
{
n++;
sum+=b;
}
public double mean()
{
return sum/n;
}
public String toString()
{
return "平均值:" +String.format("%f", mean());
}
}
package array2;
import java.util.Scanner;
/** 计算数组的平均值-测试用例
*/
public class Test
{
public static void main(String[] args)
{
int n;
Scanner sc=new Scanner(System.in);
System.out.println("请输入数组元素个数:");
n=sc.nextInt();
Avg avg=new Avg();
System.out.println("请输入"+n+"个元素:");
for(int i=0;i<n;i++)
{
avg.add(sc.nextDouble());
}
System.out.println(avg);
sc.close();
}
}
3. 复制数组
package array2;
import java.util.Scanner;
/** 复制数组
*/
public class Copy
{
public static void main(String[] args)
{
int n;
double[] m;
double[] a;
Scanner sc=new Scanner(System.in);
System.out.println("请输入数组元素个数:");
n=sc.nextInt();
m=new double[n];
System.out.println("请输入"+n+"个元素:");
for(int i=0;i<n;i++)
m[i]=sc.nextDouble();
/*-------------复制-----------------*/
a=new double[m.length];
for(int i=0;i<m.length;i++)
a[i]=m[i];
/*--------------------------------*/
System.out.println("复制后的数组:");
for(int i=0;i<m.length;i++)
System.out.print(a[i]+" ");
sc.close();
}
}
4. 颠倒数组元素的顺序
package array3;
import java.util.Scanner;
/**颠倒数组元素的顺序
*/
public class Reverse
{
public static void main (String[] args)
{
int n;
double[] m;
double temp;
Scanner sc=new Scanner(System.in);
System.out.println("请输入数组元素个数:");
n=sc.nextInt();
m=new double[n];
System.out.println("请输入"+n+"个元素:");
for (int i=0;i<n;i++)
m[i]=sc.nextDouble();
/*--------------进行颠倒--------------*/
for(int i=0;i<m.length/2;i++)
{
temp=m[i];
m[i]=m[m.length-i-1]; //长度-1-i!
m[m.length-i-1]=temp;
}
/*-------------------------------*/
System.out.println("颠倒后的数组:");
for(int i=0;i<m.length;i++)
System.out.print(m[i]+" ");
sc.close();
}
}
5. 矩阵相乘(方阵)
a[]*b[]=c[]
package array4;
import java.util.Scanner;
/** 矩阵相乘(方阵)a[][]*b[][]
*/
public class Mult
{
public static void main(String[] args)
{
int n;
double[][] a;
double[][] b;
double[][] c;
Scanner sc=new Scanner(System.in);
System.out.println("请先输入方阵的行和列的值:");
n=sc.nextInt();
a=new double[n][n];
b=new double[n][n];
c=new double[n][n];
System.out.println("请先输入一个"+n+"*"+n+"的方阵1:");
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
a[i][j]=sc.nextDouble();
System.out.println("请再输入一个"+n+"*"+n+"的方阵2:");
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
b[i][j]=sc.nextDouble();
/*-------------------------*/
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{ /*计算行i和列j的点乘*/
for(int k=0;k<n;k++)
c[i][j]+=a[i][k]*b[k][j];
}
/*-------------------------*/
System.out.println("矩阵的乘积:");
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
System.out.print(c[i][j]+" ");
System.out.println();
}
sc.close();
}
}
相关拓展阅读: