我来我网
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帮你背单词 [ excessive /ik'sesiv/ a. 过多的,过分的,极度的 ]


自己编的矩阵乘法,莫名其妙的错误!请牛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帮你背单词 [ tone /təun/ n. 音色,音调,语调,色调,气氛,调子 ]


    应该是
    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帮你背单词 [ supersonic /'sju:pə'sonik/ a. 超音速的 ]


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



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

    5come5帮你背单词 [ pork /po:k/ n. 猪肉 ]


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



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

    5come5帮你背单词 [ kilometer /'kiləmi:tə/ 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帮你背单词 [ mystery /'mistəri/ n. 神秘,奥秘,神秘的事物 ]


    谢一个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帮你背单词 [ flexibility /fl/ksə'biləti/ n. 柔韧性,弹性,(光的)折射性,灵活性 ]


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



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

    5come5帮你背单词 [ startle /'sta:tl/ vt. 使吃惊;vi. 惊起 ]


    怎么可能出现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帮你背单词 [ july /d3əu:'lai/ n. 七月 ]


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



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

    5come5帮你背单词 [ drought /draut/ n. 旱灾 ]


    不好意思我写错了,就是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帮你背单词 [ pilgrimage /'pilgrimid3ə/ n. 朝圣,远游 ]


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



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

    5come5帮你背单词 [ multiple /'mΛltipl/ a. 复合的,多样的,多重的;n. 倍数 ]


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



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

    5come5帮你背单词 [ revolution /revə'lu:ən/ n. 革命,大变革,旋转,周期,循环 ]


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

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

    很不明白WHY??求教

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



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

    5come5帮你背单词 [ amuse /ə'mju:z/ vt. 逗乐,使开心,给…提供娱乐 ]


    请你将你所有的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帮你背单词 [ imply /im'plai/ n. 暗示,含有…的意义 ]


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

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