我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

« 1 2» Pages: ( 1/2 total )
本页主题: 自己编的矩阵乘法,莫名其妙的错误!请牛GG帮忙解释....万分感谢 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

solo独奏



性别: 帅哥 状态: 该用户目前不在线
头衔: 冰是睡着的水
等级: 荣誉会员
家族: YD一族
发贴: 6989
威望: 3
浮云: 379
在线等级:
注册时间: 2006-12-01
最后登陆: 2008-06-26

5come5帮你背单词 [ arise /ə'raiz/ vi. 起来,升起,出现 ]


自己编的矩阵乘法,莫名其妙的错误!请牛GG帮忙解释....万分感谢

我把代码帖出来,随便写的没注意检错和效率等问题,GG莫笑哈

错误很奇怪哈,已经通过了编译得到可执行程序.

#include <stdio.h>
#include<stdlib.h>
#define N 4
int multy(int*,int*);
int i,j,m,n;
int p=N*sizeof(int);
int *zzw=(int*)malloc(N*p);
int *B=(int*)malloc(N*p);
int *C=(int*)malloc(N*p);
main(int argc, char *argv[])
{
    printf("input the matrix");
 for (i=0;i<N-1;i++)
    {
    for(j=0;j<N-1;j++)
    {
    scanf(" %d",&(*(B+i*p+j)));
    }
    printf("\n");
    }
for (i=0;i<N-1;i++)
    {
    for(j=0;j<N-1;j++)
    {
    scanf(" %d",&(*(C+i*p+j)));
    }
    printf("\n");
    }
printf("B matrix\n");
for (i=0;i<N-1;i++)
    {
    for(j=0;j<N-1;j++)
    {
    printf(" %d",*(B+i*p+j));
    }
    printf("\n");
    }
printf("C matrix\n");
for (i=0;i<N-1;i++)
    {
    for(j=0;j<N-1;j++)
    {
 printf(" %d",*(C+i*p+j));
    }
    printf("\n");
    }

multy(B,C);
 printf("A matrix\n");
for (m=0;m<N-1;m++)
    {
    for(n=0;n<N-1;n++)
    {
 printf(" %d",*(zzw+m*p+n));
    }
    printf("\n");
    }
   free(C);
   free(B);
   free(zzw);
return 0;

}
int multy(int *,int *)
{int t;
int sum;
for(m=0;m<N-1;m++)
     {
     for(n=0;n<N-1;n++)
     {
      sum=0;
     for(t=0;t<N-1;t++)
     {

     sum+=(*(B+m*p+t)*(*(C+t*p+n)));
       *(zzw+m*p+n)=sum;

     }

     }

}

运行以后B矩阵的B[2][3],B[3][3]不管输入什么都是一个定值1.....

不知是不是内存分配上的问题.

牛GG们帮帮忙我研究了半天都没头绪

本帖最近评分记录:
  • 浮云:10 (by zc1984) | 理由: 鼓励一下~
  • 顶端 Posted: 2007-04-01 12:47 | [楼 主]
    kangtalc



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 揍敌客·奇犽
    等级: 希望之光
    家族: 万人坑恋影部落
    发贴: 1723
    威望: 5
    浮云: 1113
    在线等级:
    注册时间: 2005-09-21
    最后登陆: 2008-06-29

    5come5帮你背单词 [ itself /it'self/ prop. (它)自己(它)本身 ]


    应该是
    Copy code
    for (i = 0; i < N; i++)
    for (j = 0; j < N; j++)

    而不应该是i < N-1和 j < N-1
    本帖最近评分记录:
  • 浮云:20 (by zc1984) | 理由: 鼓励哈~感谢热心人
  • 顶端 Posted: 2007-04-01 12:53 | [1 楼]
    solo独奏



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 冰是睡着的水
    等级: 荣誉会员
    家族: YD一族
    发贴: 6989
    威望: 3
    浮云: 379
    在线等级:
    注册时间: 2006-12-01
    最后登陆: 2008-06-26

    5come5帮你背单词 [ liner /'lainə/ n. 定期航班,客轮 ]


    谢谢GG
    我回去试试....不过很奇怪的是我的矩阵C这样处理却是正确的啊?
    顶端 Posted: 2007-04-01 13:02 | [2 楼]
    solo独奏



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 冰是睡着的水
    等级: 荣誉会员
    家族: YD一族
    发贴: 6989
    威望: 3
    浮云: 379
    在线等级:
    注册时间: 2006-12-01
    最后登陆: 2008-06-26

    5come5帮你背单词 [ bolt /bəult/ n. 闪电,霹雳,插销,门闩,螺栓 ]


    错的,还是不行.....
    等待中
    顶端 Posted: 2007-04-01 13:17 | [3 楼]
    kangtalc



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 揍敌客·奇犽
    等级: 希望之光
    家族: 万人坑恋影部落
    发贴: 1723
    威望: 5
    浮云: 1113
    在线等级:
    注册时间: 2005-09-21
    最后登陆: 2008-06-29

    5come5帮你背单词 [ satisfactory /sætis'fæktəri/ n. 满足的,满意的 ]


    Copy code
    #include <stdio.h>
    #include<stdlib.h>
    #include<alloc.h>
    #define N 4
    int multy(int*,int*,int *);
    int i,j,m,n;
    int p = N * sizeof(int);

    main()
    {
      int *zzw = (int*)malloc(N*p);
      int *B = (int*)malloc(N*p);
      int *C = (int*)malloc(N*p);
      printf("input the matrix");
    for (i=0;i<N;i++)
      {
      for(j=0;j<N;j++)
      {
      scanf(" %d",&(*(B+i*N+j)));
      }
      printf("\n");
      }
    for (i=0;i<N;i++)
      {
      for(j=0;j<N;j++)
      {
      scanf(" %d",&(*(C+i*N+j)));
      }
      printf("\n");
      }
    printf("B matrix\n");
    for (i=0;i<N;i++)
      {
      for(j=0;j<N;j++)
      {
      printf(" %d",*(B+i*N+j));
      }
      printf("\n");
      }
    printf("C matrix\n");
    for (i=0;i<N;i++)
      {
      for(j=0;j<N;j++)
      {
    printf(" %d",*(C+i*N+j));
      }
      printf("\n");
      }

    multy(B,C,zzw);
    printf("A matrix\n");
    for (m=0;m<N;m++)
      {
      for(n=0;n<N;n++)
      {
    printf(" %d",*(zzw+m*N+n));
      }
      printf("\n");
      }
      free(C);
      free(B);
      free(zzw);
    return 0;
    }
    int multy(int *B,int *C,int *zzw)
    {
      int t;
      int m;
      int sum;
      for (m=0; m<N; m++)
      {
        for(n=0;n<N;n++)
        {
            sum=0;
            for (t=0; t<N; t++)
            {
              sum+= (*(B+m*N+t)*(*(C+t*N+n)));
              *(zzw+m*N+n)=sum;
            }
        }
      }
    }



    [ 此贴被kangtalc在2007-04-01 14:48重新编辑 ]
    顶端 Posted: 2007-04-01 13:39 | [4 楼]
    solo独奏



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 冰是睡着的水
    等级: 荣誉会员
    家族: YD一族
    发贴: 6989
    威望: 3
    浮云: 379
    在线等级:
    注册时间: 2006-12-01
    最后登陆: 2008-06-26

    5come5帮你背单词 [ virgin /'və:d3əin/ n. 处女;a. 贞洁的,纯洁的,未开发的 ]


    谢一个GG,我运行下来还是有同样的问题存在....
    就是B[3][3]B[3][4]B[4][3]B[4][4],都莫名其妙的等于1和2,不知道你那边运行后呢?
    顶端 Posted: 2007-04-01 13:55 | [5 楼]
    kangtalc



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 揍敌客·奇犽
    等级: 希望之光
    家族: 万人坑恋影部落
    发贴: 1723
    威望: 5
    浮云: 1113
    在线等级:
    注册时间: 2005-09-21
    最后登陆: 2008-06-29

    5come5帮你背单词 [ linear /'liniə/ a. 线(状)的,长度的 ]


    我运行的时候没有问题啊~~~
    顶端 Posted: 2007-04-01 14:00 | [6 楼]
    kangtalc



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 揍敌客·奇犽
    等级: 希望之光
    家族: 万人坑恋影部落
    发贴: 1723
    威望: 5
    浮云: 1113
    在线等级:
    注册时间: 2005-09-21
    最后登陆: 2008-06-29

    5come5帮你背单词 [ example /ig'za:mpl/ n. 例子,例证,范例,榜样 ]


    怎么可能出现B[4][4]之类的??????
    你的N 是4
    所以是从B[0][0]到B[3][3]嘛
    顶端 Posted: 2007-04-01 14:00 | [7 楼]
    tj.g



    年度之星奖 特殊贡献奖 社区建设奖
    性别: 帅哥 状态: 该用户目前不在线
    头衔: 明媚的忧伤。。
    等级: 幕后精英
    家族: 水族馆
    发贴: 19483
    威望: 13
    浮云: 318
    在线等级:
    注册时间: 2005-10-01
    最后登陆: 2022-10-12

    5come5帮你背单词 [ frost /frost/ n. 冰冻,严寒,霜,结霜;v. (使)结霜,下霜 ]


    什么是矩阵乘法?
    顶端 Posted: 2007-04-01 14:18 | [8 楼]
    solo独奏



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 冰是睡着的水
    等级: 荣誉会员
    家族: YD一族
    发贴: 6989
    威望: 3
    浮云: 379
    在线等级:
    注册时间: 2006-12-01
    最后登陆: 2008-06-26

    5come5帮你背单词 [ animate /'ænimeit/ a. 有生命的,有生气的,生气勃勃的;vt. 赋于生命,鼓励,激励 ]


    不好意思我写错了,就是B[1][2],B[1][3],B[2][2],B[2][3],B[3][2],B[3][3]的不到正确的输入
    顶端 Posted: 2007-04-01 14:19 | [9 楼]
    solo独奏



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 冰是睡着的水
    等级: 荣誉会员
    家族: YD一族
    发贴: 6989
    威望: 3
    浮云: 379
    在线等级:
    注册时间: 2006-12-01
    最后登陆: 2008-06-26

    5come5帮你背单词 [ yellow /'jeləu/ a. 黄的,黄色的;n. 黄色 ]


    截图
    远程图片:20070401142240906.JPG
    顶端 Posted: 2007-04-01 14:27 | [10 楼]
    kangtalc



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 揍敌客·奇犽
    等级: 希望之光
    家族: 万人坑恋影部落
    发贴: 1723
    威望: 5
    浮云: 1113
    在线等级:
    注册时间: 2005-09-21
    最后登陆: 2008-06-29

    5come5帮你背单词 [ senior /'si:njə/ a. 年长的,资格老的,地位高的;n. 长辈,上级,上司 ]


    你输入一个数字就按个回车shi shi
    顶端 Posted: 2007-04-01 14:30 | [11 楼]
    solo独奏



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 冰是睡着的水
    等级: 荣誉会员
    家族: YD一族
    发贴: 6989
    威望: 3
    浮云: 379
    在线等级:
    注册时间: 2006-12-01
    最后登陆: 2008-06-26

    5come5帮你背单词 [ fume /fju:m/ n. 烟,气 ]


    谢谢GG!能得到正确的输入了. 不过为什么呢?? 我用空格有错吗???

    我用以前我那个也可以了.....

    很不明白WHY??求教

    顶端 Posted: 2007-04-01 14:40 | [12 楼]
    kangtalc



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 揍敌客·奇犽
    等级: 希望之光
    家族: 万人坑恋影部落
    发贴: 1723
    威望: 5
    浮云: 1113
    在线等级:
    注册时间: 2005-09-21
    最后登陆: 2008-06-29

    5come5帮你背单词 [ originality /ərid3əi'næliti/ n. 创造力,独创性,新颖 ]


    请你将你所有的C+i*p+j的那个p换成N,控制行长根本不能用p,应该用N
    我在上面的代码里改过了,你仔细看看
    顶端 Posted: 2007-04-01 14:47 | [13 楼]
    彬彬



    性别: 帅哥 状态: 该用户目前不在线
    头衔: 滚蛋之人∩_∩
    等级: 荣誉会员
    家族: 考研俱乐部
    发贴: 22342
    威望: 4
    浮云: 422
    在线等级:
    注册时间: 2005-03-09
    最后登陆: 2009-07-26

    5come5帮你背单词 [ probably /'probəbli/ ad. 大概,或许,很可能 ]


    我想知道矩阵求逆是否有库函数
    顶端 Posted: 2007-04-01 15:06 | [14 楼]
    « 1 2» Pages: ( 1/2 total )
    我来我网·5come5 Forum » 程序员之家

    Total 0.008387(s) query 5, Time now is:11-23 15:46, Gzip enabled
    Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号