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

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

solo独奏



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

5come5帮你背单词 [ nucleus /'nju:kliəs/ n. (原了)核,核心,中心 ]


自己编的矩阵乘法,莫名其妙的错误!请牛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 | [楼 主]
    solo独奏



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

    5come5帮你背单词 [ somewhere /'sΛmw/ə/ ad. 某处 ]


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



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

    5come5帮你背单词 [ shoot /u:t/ vi. 射击,疾驰耐这,发芽,射门;vt. 射中,发射,拍摄;n. 嫩枝,苗 ]


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



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

    5come5帮你背单词 [ accident /'æksidənt/ n. 意外事件,事故 ]


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



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

    5come5帮你背单词 [ dilute /dai'lut/ v. & a. 冲淡(的),稀释(的) ]


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



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

    5come5帮你背单词 [ wrestle /'resl/ n. 摔跤,搏斗 ]


    截图
    远程图片:20070401142240906.JPG
    顶端 Posted: 2007-04-01 14:27 | [5 楼]
    solo独奏



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

    5come5帮你背单词 [ master /'ma:stə/ n. 主人,雇言,能手,大师,硕士;vt. 掌握,精通,控制,征服 ]


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

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

    很不明白WHY??求教

    顶端 Posted: 2007-04-01 14:40 | [6 楼]
    我来我网·5come5 Forum » 程序员之家

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