| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 646 人关注过本帖
标题:谁能帮我看看啊 矩阵乘法 求助啊!!!!!!!!!!
只看楼主 加入收藏
妙源清君
Rank: 2
等 级:论坛游民
帖 子:7
专家分:10
注 册:2011-7-10
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
谁能帮我看看啊 矩阵乘法 求助啊!!!!!!!!!!
Description

给定两个矩阵,求出它们的积

Input

多组数据
每组首先给出n1,n2,n3
代表两个矩阵的维数分别为n1*n2,n2*n3
然后先是n1行n2列数字,代表A矩阵,再是n2行n3列数字,代表B矩阵.

Output

输出得到的矩阵,一行内的数字用空格分开.

Sample Input


3 3 3
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1
1 1 1



Sample Output


3 3 3
3 3 3
3 3 3


我的代码:为什么错了?
#include<cstdio>
#include<string.h>
int a[1010][1010],b[1010][1010],c[1010][1010];
int main()
{
    int n1,n2,n3,i,j,k;
    while(scanf("%d%d%d",&n1,&n2,&n3)!=EOF)
    {
        memset(c,0,sizeof(c));
        for(i=0;i<n1;i++)
            for(j=0;j<n2;j++)
                scanf("%d",&a[i][j]);
        for(i=0;i<n2;i++)
            for(j=0;j<n3;j++)
                scanf("%d",&b[i][j]);
        for(i=0;i<n1;i++)
            for(k=0;k<n2;k++)
                for(j=0;j<n3;j++)
                    c[i][j]+=a[i][k]*b[k][j];
        for(i=0;i<n1;i++)
            {
                for(j=0;j<n3-1;j++)
                printf("%d ",c[i][j]);
                printf("%d\n",c[i][j]);
            }               
    }
    return 0;
}


[ 本帖最后由 妙源清君 于 2011-9-2 22:02 编辑 ]
搜索更多相关主题的帖子: 矩阵 include 
2011-08-03 09:18
yuccn
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:何方
等 级:版主
威 望:167
帖 子:6815
专家分:42393
注 册:2010-12-16
收藏
得分:5 
???????????
你的问题是什么啊?

我行我乐
公众号:逻辑客栈
我的博客:
https://blog.yuccn. net
2011-08-04 09:32
吴辉
Rank: 3Rank: 3
来 自:湖南
等 级:论坛游侠
帖 子:52
专家分:199
注 册:2011-3-27
收藏
得分:5 
楼主,什么情况???
2011-08-04 12:06
马甲1号
Rank: 5Rank: 5
等 级:职业侠客
帖 子:68
专家分:312
注 册:2011-4-4
收藏
得分:5 
卖烧饼

???????
2011-08-04 13:51
fgfdfg
Rank: 2
等 级:论坛游民
帖 子:25
专家分:52
注 册:2011-5-31
收藏
得分:5 
回复 楼主 妙源清君
是什么传说?
2011-08-04 15:41
妙源清君
Rank: 2
等 级:论坛游民
帖 子:7
专家分:10
注 册:2011-7-10
收藏
得分:0 
各位大侠看看,错哪了,一直wrong answer
ps:应该不是数组越界问题


[ 本帖最后由 妙源清君 于 2011-9-3 09:43 编辑 ]
2011-09-02 21:00
zyh1986
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-4
收藏
得分:0 
/*本矩阵运算系统可以完成矩阵的加、减、乘法,但是只限于方阵*/




#include<stdio.h>
#include<math.h>


/*--------------------全局变量定义-------------------------*/
int n,m,c=0;
int a[100][100],b[100][100];
int fc[100][100];


/*--------------------函数声明-----------------------------*/
void print();
void print_sub();
void input_marry();
void add_marry();
void sub_marry();
void mut_marry();

/*------------------主函数-----------------*/
void main()
{
   print();  
   scanf("%d",&c);
   while(c!='\0')
   {   
       if(c==1) {input_marry();}        
       if(c==2) {add_marry();}        
       if(c==3) {sub_marry();}   
       if(c==4) {mut_marry();}   
       if(c==0) {c='\0';}
       printf("请选择运算:\n\n");
       scanf("%d",&c);     
   }

}


/*----------------打印函数------------------*/
void print()
{
  printf("          矩阵运算管理系统          \n");
  printf("------------------------------------\n");
  printf("1 输入矩阵\n");
  printf("2 矩阵相加\n");
  printf("3 矩阵相减\n");
  printf("4 矩阵相乘\n");
  printf("0 退出系统\n");
  printf("------------------------------------\n");
  printf("请选择:\n\n");
}


/*---------------矩阵输入-----------------------*/
void input_marry()
{
int i,j;
printf("请输入矩阵的维数\n\n");
scanf("%d",&n);
m=n*n;
/*---------------第一个矩阵输入-----------------*/
printf("请输入第一个矩阵a(共有%4d个元素):\n\n",m);
do
{
    m--;
for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    {
      scanf("%d",&a[i][j]);
    }
}while(m<0);
/*----------------打印第一个矩阵---------------*/
printf("您输入的矩阵a=\n\n");
for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    {
      printf("%10d",a[i][j]);
      if(j==n-1)printf("\n");
    }
/*---------------第二个矩阵输入-----------------*/
m=n*n;


printf("请输入第二个矩阵b(共有%4d个元素):\n\n",m);
do
{
    m--;
for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    {
      scanf("%d",&b[i][j]);
    }
}while(m<0);
/*----------------打印第二个矩阵---------------*/
printf("您输入的矩阵b=\n\n");
for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    {
      printf("%10d",b[i][j]);
      if(j==n-1)printf("\n");
    }
 print_sub();
}


/*----------------矩阵加法运算-----------------*/
void add_marry()
{
  int i,j;
  for(i=0;i<n;i++)
      for(j=0;j<n;j++)
      { fc[i][j]=0;
        fc[i][j]=a[i][j]+b[i][j];
   
      }
         printf("矩阵和为:\n\n");
        for(i=0;i<n;i++)
             for(j=0;j<n;j++)
             {
               printf("%10d",fc[i][j]);
               if(j==n-1)printf("\n");
             }
print_sub();
}

/*----------------矩阵减法运算-----------------*/
void sub_marry()
{
int i,j;
  for(i=0;i<n;i++)
      for(j=0;j<n;j++)
      { fc[i][j]=0;
        fc[i][j]=a[i][j]-b[i][j];
      }
      printf("矩阵差为:\n\n");
      for(i=0;i<n;i++)
             for(j=0;j<n;j++)
             {
               printf("%10d",fc[i][j]);
               if(j==n-1)printf("\n");
             }
print_sub();
}
/*----------------矩阵乘法运算-----------------*/
void mut_marry()
{
  int k,i,j;
  for (i=0;i<n;i++)
     for (j=0;j<n;j++)
         { fc[i][j]=0;
           for (k=0;k<n;k++)
              fc[i][j]+=a[i][k]*b[k][j];
           }

      printf("矩阵积为:\n\n");
          for(i=0;i<n;i++)
             for(j=0;j<n;j++)
             {
               printf("%10d",fc[i][j]);
               if(j==n-1)printf("\n");
             }
print_sub();               
}


/*-------------------子打印函数-----------------*/
void print_sub()
{
    printf("\n----------------------------------------------\n");
    printf("\n2 矩阵相加;3 矩阵相减;4 矩阵相乘;0 退出系统\n");
    printf("\n----------------------------------------------\n");

}
2011-09-04 14:37
zyh1986
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-9-4
收藏
得分:0 
你可以看看这样可以解决吗?
2011-09-04 14:37
妙源清君
Rank: 2
等 级:论坛游民
帖 子:7
专家分:10
注 册:2011-7-10
收藏
得分:0 
回复 8楼 zyh1986
很系统,很好,我要的就是思路,谢谢!
2011-09-04 22:15
快速回复:谁能帮我看看啊 矩阵乘法 求助啊!!!!!!!!!!
数据加载中...
 
   



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

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