简单Java问题求助

来源:百度知道 编辑:UC知道 时间:2024/06/01 17:44:00
初学Java,遇到两个问题:
(1)
程序代码:
public class BitMovement{
int number,result1,result2;
String resultStr;
Scanner scanner;
public BitMovement(){
System.out.println("请输入一个整数:");
scanner=new Scanner(System.in);
number=scanner.nextInt();
result1=number<<5;
result2=number>>3;
resultStr=number+"<<5="+result1;
resultStr+="\n"+number+">>3="+result2;
System.out.println(resultStr);
}

public static void main(String args[]){
BitMovement bitMovement=new BitMovement();
System.exit(0);
}
}

请大家指导一下......

(2)
求矩阵乘法
代码如下:
import java.util.Scanner;
public class MatrixMultiply{
Scanner scanner;
int a[][];
int b[][];
int c[][];

public MatrixMultiply(){
scanner=new Scanner(System.in);
a=new int[2][3];
b=new in

第一个是没有导入包:
import java.util.*;
第二个是
public void input(int aa[][],int row,int col){
System.out.println("输入数组:行数="+row+" 列数="+col);
for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
aa[i][j]=scanner.nextInt(); //aa你写成a了.当然会出错
}

input函数本来是对形参数组aa输入值的,但你在21行将值存到了a数组中。而a数组是类成员,可访问的,但容量小,是2*3的;而到了调用input(b,3,4)时,下标将会到2和3,因此会越界的。将此处的a改为aa。
另外,需要将multiply中的
for(int k..
之前加一行:result[i][j]=0;
并把
result[i][j]=aa[i][k]*bb[k][j];
这行改成:
result[i][j]+=aa[i][k]*bb[k][j];

scanner=new Scanner(System.in);用到scanner,需引入包:import java.util.Scanner;

第二个:for(int i=0;i<row;i++)
for(int j=0;j<col;j++)
a[i][j]=scanner.nextInt();
}
这里的数组应该是aa