矩阵的加法和乘法代码如下:
package testthree;
import java.util.*;
public class threee {
//矩阵的加法
public static void matrixAdd()
{
Scanner reader = new Scanner(System.in);
//矩阵的加法
int [][]A;
int [][]B;
int [][]C;
int x,y; //行数为 x,列数为 y;
System.out.println("请输入被加矩阵和加矩阵的行数和列数:");
x = reader.nextInt();
y = reader.nextInt();
A = new int [x][y];
B = new int [x][y];
C = new int [x][y];
System.out.println("创建空矩阵成功!");
//输入 A矩阵的值
System.out.println("请输入 A矩阵 的值:");
for(int i = 0; i < x; i++)
{
for(int j = 0; j < y; j++)
{
A[i][j] = reader.nextInt();
}
}
//输入 B矩阵的值
System.out.println("请输入 B矩阵 的值:");
for(int i = 0; i < x; i++)
{
for(int j = 0; j < y; j++)
{
B[i][j] = reader.nextInt();
}
}
//进行相加
for(int i = 0; i < x; i++)
{
for(int j = 0; j < y; j++)
{
C[i][j] = A[i][j] + B[i][j];
}
}
//输出相加结果
System.out.println("以下是 A和B相加得到的 C矩阵的值:");
for(int i = 0; i < x; i++)
{
for(int j = 0; j < y; j++)
{
System.out.print(C[i][j] + " ");
}
System.out.println();
}
}
//矩阵的乘法
public static void matrixMultiply()
{
Scanner reader = new Scanner(System.in);
//矩阵的乘法
int [][]A;
int [][]B;
int [][]C;
int x1,y1; //A矩阵的 行数为 x1,列数为 y1;
int x2,y2; //B矩阵的 行数为 x2,列数为 y2;
int sum = 0,k = 0,p; //矩阵相乘用到的中间数
//输入行列数
System.out.println("请输入被乘矩阵和乘矩阵的行数和列数:");
x1 = reader.nextInt();
y1 = reader.nextInt();
x2 = reader.nextInt();
y2 = reader.nextInt();
//判断两矩阵是否能相乘
if(y1 == x2)
{
A = new int [x1][y1];
B = new int [x2][y2];
C = new int [x1][y2];
System.out.println("创建空矩阵成功!");
//输入A矩阵
System.out.println("请输入 A矩阵:");
for(int i = 0;i < x1;i++)
for(int j = 0;j < y1;j++)
{
A[i][j] = reader.nextInt();
}
//输入B矩阵
System.out.println("请输入 B矩阵:");
for(int i = 0;i < x2;i++)
for(int j = 0;j < y2;j++)
{
B[i][j] = reader.nextInt();
}
//开始进行相乘
for(int i = 0;i < x1;i++)
{
k = 0;p = 0;
while(k < x1)
{
sum = 0;
for(int j = 0;j < y2;j++)
{
sum += A[i][j] * B[j][k];
}
k++;
C[i][p] = sum;
p++;
}
}
//输出结果
System.out.println("以下是 A和B相乘得到的 C矩阵的值:");
for(int i = 0; i < x1; i++)
{
for(int j = 0; j < y2; j++)
{
System.out.print(C[i][j] + " ");
}
System.out.println();
}
}
else System.out.println("两个矩阵不能相乘!");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner reader = new Scanner(System.in);
//菜单式引导访问
int flag = 1;
while(flag != 0)
{
System.out.println("\t|-----矩阵的加法与乘法-----|");
System.out.println("\t| |");
System.out.println("\t| 1-矩阵的加法 |");
System.out.println("\t| 2-矩阵的乘法 |");
System.out.println("\t| 0-程序的退出 |");
System.out.println("\t|-------------------------|");
System.out.println("\t| 请输入要进行的操作 |");
if((flag = reader.nextInt()) != 0)
{
switch(flag)
{
case 1:
{
matrixAdd();
break;
}
case 2:
{
matrixMultiply();
break;
}
default:
{
if(0 != flag)
System.out.println("输入错误,请重新输入!");
break;
}
}
}
}
//非菜单式访问
// System.out.println("此程序是用来求两个矩阵的加法或乘法的,输入 1 为加法,输入 2 为乘法");
// System.out.print("请输入你所需要的操作:");
// flag = reader.nextInt();
// if(flag == 1) matrixAdd();
// if(flag == 2) matrixMultiply();
// else System.out.println("输入操作错误!");
System.out.println("该程序结束,感谢使用!");
}
}