A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class Chengfa{
public static void main(String args[]){
int a[][]={{2,1,4,0},{1,-3,3,4}};
int b[][]={{1,3,1},{0,-1,2},{4,0,-2}};
int c[][]= new int[2][3];
for(int i =0;i<c.length;i++){
for(int j =0;j<c[0].length;j++){
c[j]=0;
for(int x=0;x<a[0].length;x++){
c[j]+=a[x]*b[x][j];
}
}
}
for(int i=0;i<c.length;i++){
for(int j = 0;j<c[0].length;j++){
System.out.print("c["+i+"]["+j+"]= "+c[j]+" ");
}
}
}
};

8 个回复

正序浏览
王飞 中级黑马 2012-7-17 12:50:34
9#
上面几位帅哥回答完了 我都么机会了,{:soso_e149:}
回复 使用道具 举报
王飞 中级黑马 2012-7-17 12:47:21
8#
陆强强 发表于 2012-7-15 12:27
代码显示有问题 ”c  [j]”显示不出来。给你个截图

个么  怎么上传图啊。。。求解
回复 使用道具 举报
1、其实数组是一个容器而已,多维数组不过就是容器里面又装着容器,大水桶里面装着小水桶,小水桶里面又装着还要小一点的水桶,一层层的循环(看你的需求了),就像我们这个世界一样,宇宙-太阳系-。。。地球。。。。房子。。。箱子。。。。都是大的包容了小的,小的又包容了更小的。
2、容器的元素:可以是容器(就像引用数据类型一样,存放的是地址,只能又机器子来赋值),也可以是基本数据类型(可以我们来赋值)。水桶里面可以装水桶,也可以装水一样。
3、你说的那个int [i][j] c,就像一根大水桶里面装了i个小水桶,每个小水桶里面有j个小盒子,每个小盒子可以放一个int数据
   你的c[j]=0,这里的int[j]是一个小水桶呀,不能接受int值,你只能把int数据放到小盒子里面。
   而c[i][j]才是盒子;只有盒子之间才可以做赋值、+-*、等运算

4、改正:①将c[j]=0改成 c[i][j]=0;
             ②把c[j]+=a[x]*b[x][j];  改成 c[i][j]=a[i][x]*a[i][j]

5、看不懂你这题的需求是什么。。你难道是想写矩阵相乘?
回复 使用道具 举报
int c[][]= new int[2][3];//A语句
for(int i =0;i<c.length;i++){
for(int j =0;j<c[0].length;j++){
c[j]=0;
for(int x=0;x<a[0].length;x++){
c[j]+=a[x]*b[x][j];//B语句

A语句指明c[][],是个二维数组,
B语句左侧是对c[][]二维数组中的c[]数组操作,对它操作只能指定它当中的数组,而不是具体的数字。
想指定数字,只能对c[][]这个二维数组中的子数组(我自己起的名,方便理解)进行操作。

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
public class Chengfa{
public static void main(String args[]){
int a[][]={{2,1,4,0},{1,-3,3,4}};
int b[][]={{1,3,1},{0,-1,2},{4,0,-2}};
int c[][]= new int[2][3];
for(int i =0;i<c.length;i++){
for(int j =0;j<c[0].length;j++){
c[j]=0;                                             //这里c[j]是一个int型的数组,既然是一个数组,怎么能直接负值呢!
for(int x=0;x<a[0].length;x++){
c[j]+=a[x]*b[x][j];                           //这里也是,a[x]是数组,而b[x][j]是一个数,这里不能进行*运算,就是说 int []  * int 是错误的。
}
}
}
for(int i=0;i<c.length;i++){
for(int j = 0;j<c[0].length;j++){
System.out.print("c["+i+"]["+j+"]= "+c[j]+" ");
}
}
}
};

评分

参与人数 1技术分 +1 收起 理由
刘笑 + 1 赞一个!

查看全部评分

回复 使用道具 举报
本帖最后由 陆强强 于 2012-7-15 12:46 编辑

代码显示有问题 ”c  [j]”显示不出来。给你个截图

未命名.JPG (45.25 KB, 下载次数: 32)

未命名.JPG

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
1.在你的代码中使用了数组与数相乘,这是行不通的
2.注意数组下标问题
3.希望你能把你的需求说清楚,以便帮你更改。
回复 使用道具 举报
c[j]=0;
没看代码,看了语法也知道这里有问题,c[j]是个数组吧,怎么能直接赋值呢?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马