编写java程序,定义一个2*3的数组a和一个3*4的数组b,在定义一个数组c,使其存放矩阵,最后输出结果

如题所述

第1个回答  2012-09-29
可以参考如下代码

package javaapplication3;

import java.util.Scanner;

/**
*
* @author XieKe
*/
public class JavaApplication3 {

/**
* @param args the command line arguments
*/
static void init(int [][]p,int la,int lb)
{
System.out.println("请输入二维数组元素:"+la+"行 "+lb+"列");
int i,j;
Scanner sc = new Scanner(System.in);
byte []by = new byte[10];
try
{
for(i = 0;i < la;i ++)
{
for(j = 0;j < lb;j ++)
{
p[i][j] = sc.nextInt();
}
}
}
catch(Exception ex)
{
System.out.println(ex.toString());
}
}
static void transform(int [][] p,int la,int lb,int [][]res)
{
int i,j;
for(i = 0;i < la;i ++)
{
for(j = 0;j < lb;j ++)
{
res[j][i] = p[i][j];
}
}
}
static void print(int [][]p,int la,int lb)
{
int i,j;
System.out.println("输出二维数组元素:"+la+"行 "+lb+"列");
for(i = 0;i < la;i ++)
{
for(j = 0;j < lb;j ++)
{
System.out.print(p[i][j] + " ");
}
System.out.println();
}
}
public static void main(String[] args) {
// TODO code application logic here
int [][]a;
a = new int[2][3];
init(a,2,3);
int [][]b;
b = new int[3][4];
init(b,3,4);
int [][]c;
c = new int[4][4];
transform(a,2,3,c);
print(c,3,2);
transform(b,3,4,c);
print(c,4,3);

}
}
输入输出如下:

请输入二维数组元素:2行 3列
1 2 3
4 5 6
请输入二维数组元素:3行 4列
1 2 3 4
5 6 7 8
9 10 11 12
输出二维数组元素:3行 2列
1 4
2 5
3 6
输出二维数组元素:4行 3列
1 5 9
2 6 10
3 7 11
4 8 12
第2个回答  2012-09-29
你说的意思是a,b都是矩阵,C是a*b么?
那c是2*4的数组
具体算C的伪码为:
double c[2][4] = null;
for(int i = 0;i<2;i++){
for(int j = 0;j<4;j++){
for(int k =1;k<3;k++){
c[i][j] += a[i][k] * b [k][j];
}
}
}
输出就用循环好了。本回答被提问者和网友采纳
第3个回答  2012-09-29
import java.util.ArrayList;
import java.util.List;

public class Te {

public static void main(String[] args) {
int[][] a = new int[2][3];//定义数组a
int[][] b = new int[3][4];//定义数组b
List<int[][]> list = new ArrayList<int[][]>();//用于存放数组,找不到更合适的了
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
a[i][j]=i+j;//随意赋值
}
}
for(int i=0;i<b.length;i++){
for(int j=0;j<b[i].length;j++){
b[i][j]=i+j;//随意赋值
}
}
list.add(a);//向list中添加数组
list.add(b);
print(list);//打印数组
}

private static void print(List<int[][]> obj) {//答应数组的方法
for(int i=0;i<obj.size();i++){
int[][] d=obj.get(i);
for(int j=0;j<d.length;j++){
for(int k=0;k<d[j].length;k++){
System.out.print(d[j][k]+"\t");
}
System.out.println();
}
System.out.println("=============================");
}
}
第4个回答  2012-09-29
public double[][] multiply(double[][] x,double[][] y){
double[][] result = null ;
int a = x[0].length ;
int b = y.length ;
if(a != b){
System.out.println("输入的维数不匹配,不能进行运算");
}else{
int c = x.length ;
int d = y[0].length ;
result = new double[c][d] ;
for(int i=0;i<c;i++){
for(int j=0;j<d;j++){
double sum = 0 ;
for(int k=0;k<a;k++){
sum += x[i][k]*y[k][j] ;
}
result[i][j] = sum ;
}
}
}
return result ;
}

参考资料:http://zhidao.baidu.com/question/327444904.html

相似回答