开发者社区> 问答> 正文

C语言调用函数实现矩阵自乘

各位前辈,小弟新学C语言,怎么也调试不过,不知道哪里出了问题,请问我该怎么调试?
调用void SelfMul(int A1[][3],int A2[][3],int n)实现3阶矩阵的乘法

#include
//void SelfMul(int A1[][maxSize],int A2[][maxSize],int n)
void SelfMul(int A1[][3],int A2[][3],int n)
{
int s=0;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
{
A2[i][j]=0;
for(int k=0;k<n;k++)
A2[i][j]=A2[i][j]+A1[i][k]*A1[k][j];
printf("%d ",A2[i][j]);
if(++s%3==0)printf("\n");
}
}
int main()
{
int A1[][3]={{0,1,0},{0,0,1},{1,1,0}};
int A2[3][3];
// int s=0;
SelfMul(A1[][3],A2[][3],3); //编译问题出错提示所在行
/*
for(int m=0;m<3;m++)
for(int b=0;b<3;b++)
{
printf("%d ",A2[m][b]);
if(++s%3==0)printf("\n");
}
*/
return 0;
}

编译不通过,提示error C2059: syntax error : ']'

展开
收起
a123456678 2016-03-19 13:58:40 3417 0
5 条回答
写回答
取消 提交回答
  • cpp里没有[]这种索引方式吧

    2020-03-19 10:48:17
    赞同 展开评论 打赏
  • 专注物联网

    include

    void SelfMul(int (A1)[3],int (A2)[3],int n)
    {
    int s=0;
    for(int i=0;ifor(int j=0;j{
    A2i=0;
    for(int k=0;kA2i=A2i+A1i*A1k;
    printf("%d ",A2i);
    if(++s%3==0)printf("n");
    }
    }
    int main()
    {
    int A1[][3]={{0,1,0},{0,0,1},{1,1,0}};
    int A23;

    SelfMul(&A1,&A2,3);

    return 0;
    }

    0 0 1
    1 1 0
    0 1 1

    2019-07-17 19:08:04
    赞同 展开评论 打赏
  • 软件开发,安全加密

    include

    void SelfMul(int (A1)[3],int (A2)[3],int n)
    {
    int s=0;
    for(int i=0;ifor(int j=0;j{
    A2i=0;
    for(int k=0;kA2i=A2i+A1i*A1k;
    printf("%d ",A2i);
    if(++s%3==0)printf("n");
    }
    }
    int main()
    {
    int A1[][3]={{0,1,0},{0,0,1},{1,1,0}};
    int A23;

    SelfMul(&A1,&A2,3);

    return 0;
    }

    0 0 1
    1 1 0
    0 1 1


    include

    void SelfMul(int (A1)[3],int (A2)[3],int n)
    {
    int s=0;
    for(int i=0;ifor(int j=0;j{
    A2i=0;
    for(int k=0;kA2i=A2i+A1i*A1k;
    printf("%d ",A2i);
    if(++s%3==0)printf("n");
    }
    }
    int main()
    {
    int A1[][3]={{0,1,0},{0,0,1},{1,1,0}};
    int A23;

    SelfMul(&A1,&A2,3);

    return 0;
    }

    0 0 1
    1 1 0
    0 1 1

    2019-07-17 19:08:04
    赞同 展开评论 打赏
  • 乐于学习与分析

    include

    void SelfMul(int (A1)[3],int (A2)[3],int n)
    {
    int s=0;
    for(int i=0;ifor(int j=0;j{
    A2i=0;
    for(int k=0;kA2i=A2i+A1i*A1k;
    printf("%d ",A2i);
    if(++s%3==0)printf("n");
    }
    }
    int main()
    {
    int A1[][3]={{0,1,0},{0,0,1},{1,1,0}};
    int A23;

    SelfMul(&A1,&A2,3);

    return 0;
    }

    0 0 1
    1 1 0
    0 1 1

    2019-07-17 19:08:04
    赞同 展开评论 打赏
  • 标准的[]里面应该是有值的
    你试试这个编译应该不会出错,但是运行就不知道了

    enter code here  #include <stdio.h>
    void SelfMul(int A1[][3],int A2[][3],int n);
    void SelfMul(int A1[][3],int A2[][3],int n)
    {
    int s=0;
    for(int i=0; i<n; i++)
    for(int j=0; j<n; j++)
    {
    A2[i][j]=0;
    for(int k=0; k<n; k++)
    A2[i][j]=A2[i][j]+A1[i][k]*A1[k][j];
    printf("%d ",A2[i][j]);
    if(++s%3==0)printf("\n");
    }
    }
    int main()
    {
    int A1[][3]= {{0,1,0},{0,0,1},{1,1,0}};
    int A2[3][3];
    int s = 0;
    SelfMul(A1[3][3],A2[3][3],3);
    for(int m=0; m<3; m++)
    for(int b=0; b<3; b++)
    {
    printf("%d ",A2[m][b]);
    if(++s%3==0)printf("\n");
    }
    
    return 0;
    }
    2019-07-17 19:08:04
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载

相关实验场景

更多