Java实验报告2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二输出九九乘法表和矩阵相乘问题
一.实验目的
1.掌握Java语言的循环语句,能使用多循环解决实际问题。
2.了解和灵活使用continue、break、continue label和break label等语句。
3.考查多维数组的定义和应用。
4.利用多维数组解决实际问题。
二.实验任务
1.熟悉对循环语句和多种转换语句的应用。
2.编写程序实现两个矩阵的相乘运算,前提是作为乘数的矩阵和作为被乘数的行数相等,则两个矩阵可以相乘,否则不可以。
三.实验环境
PC微机
Windows 操作系统
Eclipse 集成环境
四.实验步骤
1.九九乘法表的代码:
import ng.*;
import java.io.*;
public class chengfabiao {
public static void main(String[] args)
{
int i,j;
System.out.println("乘法表为");
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
System.out.print(j+"*"+i+"="+i*j+" ");
System.out.println("");
}
}
}
运行结果截图:
2.import java.util.*;
public class List {
Scanner scanner;
int a[][];
int b[][];
int c[][];
int x,y,m,n;
public List()
{
scanner=new Scanner(System.in);
System.out.println("请输入矩阵a的行数:");x=scanner.nextInt();
System.out.println("请输入矩阵a的列数:");y=scanner.nextInt();
a=new int[x][y];
input(a,x,y);
System.out.println("请输入矩阵b的行数:");m=scanner.nextInt();
System.out.println("请输入矩阵b的行数:");n=scanner.nextInt();
b=new int[m][n];
input(b,m,n);
if(y!=m)
System.out.println("这两个矩阵不能相乘!");
c=new int[x][n];
multiply(a,x,y,b,m,n,c);
output(c,x,n);
}
public void input(int a[][],int row,int col)
{
System.out.println("矩阵a:行数="+row+"列数="+col);
System.out.println("请输入该矩阵的各个元素:");
for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
a[i][j]=scanner.nextInt();
}
public void multiply(int a[][],int x,int y,int b[][],int m,int n,int c[][]) {
for(int i=0;i<x;i++)
for(int j=0;j<n;j++)
for(int h=0;h<y;h++)
c[i][j]+=a[i][h]*b[h][j];
}
public void output(int c[][],int row,int col)
{
System.out.println("这两个矩阵相乘的结果为:");
for(int i=0;i<row;i++)
{
for(int j=0;j<col;j++)
System.out.print(c[i][j]+" ");
System.out.print("\n");
}
}
public static void main(String args[])
{
List LL=new List();
}
}
五.实验总结
通过对本次实验的编写,发现在JA V A中对于数组的要求没有C和C++中那么严格,比如可以定义一个数组String[] a,而在C和C++中却不能。还有continue和break语句可以带标签的。我发现JA V A比C和C++方便的多。