想计算C++矩阵加法乘法为什么得不到结果?

img

img

14行,i=i++改成i++
10、11行删掉
函数定义都是错误的。
改成
void jiajia(int a[4][4],int b[4][4],int c[4][4]),乘法相同。将a+b和a*b的结果写入c数组就行
貌似你jiajia函数直接输出结果了,可以不用将c[4][4]作为参数,但你输出语句啥内容也没写,cout<<endl;这只是输出换行啊。
cout<<c[i][j]<<" ";
if(i%4==0)
cout<<endl;

错误挺多的。函数的声明和返回值不对。矩阵相乘的计算方法也不对。代码修改如下,如有帮助,请帮忙采纳一下,谢谢。

#include <iostream>
using namespace std;

void jiajia(int a[][4],int b[][4],int c[][4]);
void chengcheng(int a[][4],int b[][4],int c[][4]);

int main()
{
    int a[4][4],b[4][4];
    int c[4][4],d[4][4];
    int i,j,k,l;
    cout << "请输入两个四行四列的矩阵"<<endl;
    for (i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            cin >> a[i][j];
        }
    }
    for (i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            cin >> b[i][j];
        }
    }

    jiajia(a,b,c);
    chengcheng(a,b,d);

    for (i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            cout << c[i][j] << " ";
        }
        cout << endl;
    }

    for (i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            cout << d[i][j] << " ";
        }
        cout << endl;
    }

}

void jiajia(int a[][4],int b[][4],int c[][4])
{
    int i,j;
    for (i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            c[i][j] = a[i][j] + b[i][j];
        }
    }
}
void chengcheng(int a[][4],int b[][4],int c[][4])
{
    int i,j,k;
    for (i=0;i<4;i++)
    {
        for(j=0;j<4;j++)
        {
            c[i][j] = 0;
            for(k=0;k<4;k++)
                c[i][j] += a[i][k] * b[k][j]; //  c[i][j]的 值等于 a的i行乘以b的j列的和
        }
    }
}