矩阵的相加,相减,相乘(懵逼的作业)

题目

java老师,给我们布置了一道这样的作业
   定义类ArrayTest,定义方法:
   arrayAddition,计算两个数组的和(两个数组的行数和列数必须相等);
   arraySubtion计算两个数组的差(两个数组的行数和列数必须相等);
   arrayMul计算两个数组的乘积(第二个数组的行数必须与第一个数组的列数相等);

思路:

很简单,(懒得说)~~~

小编从来没有听过Java课,于是想尝试一下,故:

package bag;

import java.util.Scanner;

public class ArrayTest {
	
	//相加
    public void arrayAddition(int [][]a,int [][] b)
    {
        int[][]c=new int[a.length][b[0].length];  
        for(int i=0;i<a.length;i++){  
            for(int j=0;j<a[0].length;j++){  
                c[i][j]=a[i][j]+b[i][j];  
            }        
        }  
        for(int i=0;i<a.length;i++){
       	 	for(int j=0;j<a[0].length;j++)
       		 System.out.printf("%d ",c[i][j]);
        System.out.println();
        }
    }
    //相减
    
    public void arraySubtion(int[][]a,int[][] b)
    { 
        int[][]c=new int[a.length][a[0].length];  
        for(int i=0;i<a.length;i++){  
            for(int j=0;j<a[0].length;j++){  
                c[i][j]=a[i][j]-b[i][j];  
            }              
        }  
        for(int i=0;i<a.length;i++) {
       	 	for(int j=0;j<a[0].length;j++)
       	 	System.out.printf("%d ",c[i][j]);
       	 	System.out.println();
        }    
    }
    
    //相乘
    public void arrayMul(int[][] a,int[][] b)
    {   	 
          int[][] c=new int[a.length][b[0].length];
             for(int i=0;i<a.length;i++){
                 for(int j=0;j<b[0].length;j++){                
                	 c[i][j] = a[i][j] * b[i][j];                 
                 }
            }
         for(int i=0;i<a.length;i++) {
        	 for(int j=0;j<b[0].length;j++)
        		 System.out.printf("%d ",c[i][j]);
         	System.out.println();
         	}
		}
	//函数入口
    public static void main(String[] args ) {
		Scanner s = new Scanner(System.in);
		System.out.println("请输入数组的行与列");
		int x=s.nextInt();//输入行,列
		int y=s.nextInt();
		int a[][] = new int[x][y];//初始化数组
		int b[][] = new int[x][y];//初始化数组
		System.out.println("请输入第一个数组");
		for(int i=0;i<x;i++)//循环输入a
			for(int j=0;j<y;j++)
				a[i][j]=s.nextInt();
		System.out.println("请输入第二个数组");
		for(int i=0;i<x;i++)//循环输入b
			for(int j=0;j<y;j++)
				b[i][j]=s.nextInt();
		System.out.println();
		System.out.println("请输入数字\n1.相加\n2.相减\n3.相乘");
		Scanner sc = new Scanner(System.in);
		int choice = sc.nextInt();
		if(choice == 1) {
			ArrayTest aa = new ArrayTest();
			aa.arrayAddition(a,b);
		}
		else if(choice == 2){
			ArrayTest aa = new ArrayTest();
			aa.arraySubtion(a,b);
		}
		else{
			ArrayTest aa = new ArrayTest();
			aa.arrayMul(a,b);
		}
	}
}

小编因为没有听课所以打了快1个小时,难受~~~(虽然用C++小编只要10min),

小编在最后奉劝大家,学编程,就要多敲键盘,看书看了再多,没有实践,懂得再多知识也没用!!!

posted @   金鳞踏雨  阅读(29)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-04-13 单例设计模式Singleton Pattern(1)
2021-04-13 史上最全的Java设计模式(更新中...)
点击右上角即可分享
微信分享提示