| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4148 人关注过本帖
标题:[求助]实现两个二维数组的相乘,我已经尽了自己的力了。。
取消只看楼主 加入收藏
patrick0018
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-6-26
收藏
 问题点数:0 回复次数:2 
[求助]实现两个二维数组的相乘,我已经尽了自己的力了。。

1,老师要求实现两个二维数组的相乘,没有说明是否是维数和各维长度都相等的两个二维数组,也没说明相乘后是按如何情况输出,所以我首先在题目上有了疑惑。
2,暂且认为是维数和各维长度都相等的两个二维数组,用一维数组输出,小弟进行以下实现代码:
#include "stdafx.h"
#include "stdlib.h"
#define hg 3
#define sg 4

int Xiangcheng(int a[hg][sg],int b[hg][sg],int x,int y)
{
int c[x*y];
int i,j,k;
for(i=0;i<x;i++,k+y)
for(j=0,k=0;j<y;j++,k++)
c[k]=a[i][j]*b[i][j];
for(i=0;i<x*y;i++)
printf("%d",c[i]);
}

void main(int argc, char* argv[])
{
int a[hg][sg],b[hg][sg];
int i,j,k;
printf("数组a为: 数组b为: ");
for(i=0;i<hg;i++,k+sg)
for(j=0,k=1;j<sg;j++,k++)
{
a[i][j]=k; b[i][j]=k+3;
printf("%5d %5d",a[i][j],b[i][j]);
}
Xiangcheng(a[i][j],b[i][j],hg,sg);
}

此代码是在VC++状态下编写的。
结果是错误大堆。。。。请大侠帮帮忙!!!谢谢了!!!

[此贴子已经被作者于2007-6-28 16:23:44编辑过]

搜索更多相关主题的帖子: 相乘 int quot define include 
2007-06-28 16:20
patrick0018
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-6-26
收藏
得分:0 
回复:(patrick0018)[求助]实现两个二维数组的相乘,...
#include<stdio.h>
#include<conio.h>

#define X 3
#define Y 3

int a[X][Y];
int b[X][Y];
int c[X][Y];

void matrix(int b[][X],int c[][Y]);

main()
{
int I,j,temp;
clrscr();
printf("Please input int matrix b[%d][%d]\n",X,Y);
for(i=0;i<Y;i++)
for(j=0;j<Y;j++)
{scanf("%d",&temp);
b[i][j]=temp;
}
printf("Please input int matrix c[%d][%d]\n",X,Y);
for(i=0;i<X;i++)
for(j=0;j<Y;j++)
{scanf("%d",&temp);
c[i][j]=temp;
}
matrix(b,c);
printf("Now print resource matrix b[%d][%d]=",X,Y);
for(i=0;i<X;i++)
{printf("\n");
for(j=0;j<Y;j++)
printf("%d ",b[i][j]);
}
printf("\n");
printf("Now print resource matrix c[%d][%d]=",X,Y);
for(i=0;i<X;i++)
{printf("\n");
for(j=0;j<Y;j++)
printf("%d ",c[i][j]);
}
printf("\n");
printf("Now printm multiply results matrix a[%d][%d]=B*C:",X,Y);
for(i=0;i<X;i++)
{printf("\n");
for(j=0;j<Y;j++)
printf("%d ",a[i][j]);
}
getch();
return 0;
}
/********************************************************************/
void matrix(int b[][X],int c[][Y])
{
int I,j,k,temp;
for(i=0;i<X;i++)
for(j=0;j<Y;j++){
for(k=0;k<Y;k++)
a[i][j]+=b[i][k]*c[k][j];
}
}

菜鸟上路..贵在努力.. 加油!!!
2007-07-03 20:02
patrick0018
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2007-6-26
收藏
得分:0 
回复:(patrick0018)[求助]实现两个二维数组的相乘,...

#include<stdio.h>
#include<conio.h>
#define X 3
#define Y 3
int a[X][Y];
int b[X][Y];
int c[X][Y];
void matrix(int b[][X],int c[][Y]);

main()
{
int i,j,temp;
//clrscr(); // 这个函数MS C++不支持
printf("Please input int matrix b[%d][%d]\n",X,Y);
for(i=0;i<Y;i++)
for(j=0;j<Y;j++){
scanf("%d",&temp);
b[i][j]=temp;
}
printf("Please input int matrix c[%d][%d]\n",X,Y);
for(i=0;i<X;i++)
for(j=0;j<Y;j++){
scanf("%d",&temp);
c[i][j]=temp;
}
matrix(b,c);
printf("Now print resource matrix b[%d][%d]=",X,Y);
for(i=0;i<X;i++){
printf("\n");
for(j=0;j<Y;j++)
printf("%d ",b[i][j]);
}
printf("\n");
printf("Now print resource matrix c[%d][%d]=",X,Y);
for(i=0;i<X;i++){
printf("\n");
for(j=0;j<Y;j++)
printf("%d ",c[i][j]);
}
printf("\n");
printf("Now printm multiply results matrix a[%d][%d]=B*C:",X,Y);
for(i=0;i<X;i++){
printf("\n");
for(j=0;j<Y;j++)
printf("%d ",a[i][j]);
}
getch();
return 0;
}
/********************************************************************/
void matrix(int b[][X],int c[][Y])
{
int i,j,k,temp;
for(i=0;i<X;i++)
for(j=0;j<Y;j++){
for(k=0;k<Y;k++)
a[i][j]+=b[i][k]*c[k][j];
}
}
这个是最新找到的..上面那个有点错..汗


菜鸟上路..贵在努力.. 加油!!!
2007-07-03 20:06
快速回复:[求助]实现两个二维数组的相乘,我已经尽了自己的力了。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015919 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved