shotar0 2022-10-24 13:50 采纳率: 57.1%
浏览 83
已结题

C语言对称矩阵压缩存储到一维数组后进行乘法运算,运算错误

问题遇到的现象和发生背景

C语言对称矩阵压缩存储到一维数组后进行乘法运算

用代码块功能插入代码,请勿粘贴截图
#include<stdio.h>
//int Output(Arry *T,int N)
//{
//
//}
int main()
{
    int N;
    int t1[10];
    int t2[10];
    int i,j=0;
    int k=1;
    printf("请输入压缩矩阵的阶:\n");
    scanf("%d",&N);
    printf("请输入%d个压缩数值:\n",N*(N+1)/2);
    while(k<=N*(N+1)/2)//控制输入的数值的个数 
    {
        scanf("%d",&t1[i*(i+1)/2+j]);
        printf("数值=%d,在一位数组中的次序是%d\n",t1[i*(i+1)/2+j],i*(i+1)/2+j);
        i++;
        k++;
        if(i==N)
        {
            i=j+1;
            j++;
        }
    }
    printf("第一个矩阵如下:\n");
    //输出矩阵:
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            if(i>=j)
                printf("%3d",t1[i*(i+1)/2+j]);
            else
                printf("%3d",t1[j*(j+1)/2+i]);
        }
        printf("\n");    
    }
    i=0;j=0;k=1;
    printf("请输入%d个压缩数值:\n",N*(N+1)/2);
    while(k<=N*(N+1)/2)//控制输入的数值的个数 
    {
        scanf("%d",&t2[i*(i+1)/2+j]);
        printf("数值=%d,在一位数组中的次序是%d\n",t2[i*(i+1)/2+j],i*(i+1)/2+j);
        i++;
        k++;
        if(i==N)
        {
            i=j+1;
            j++;
        }
    }
    printf("第二个矩阵如下:\n");
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            if(i>=j)
                printf("%3d",t2[i*(i+1)/2+j]);
            else
                printf("%3d",t2[j*(j+1)/2+i]);
        }
        printf("\n");    
    }
    i=0;j=0;    
    //矩阵的乘法运算:
    int num=0;
    k=0;int count=0;
    for(i=0;i<N;i++)
    {
        for(j=0;j<N;j++)
        {
            for(k=0;k<N;k++)
            {
                num=num+t1[k*(k+1)/2+i]*t2[k*(k+1)/2+j];
            }
            printf("%d   ",num);
            num=0;
        }    
    }    
}

运行结果及报错内容

我的这个乘法运算在输出矩阵的前两个数据还是没错的,第三个数据就开始出错了,也找不到问题在哪

我想要达到的结果

输出矩阵1和矩阵2相乘后的矩阵。

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月1日
    • 创建了问题 10月24日

    悬赏问题

    • ¥40 微信小程序 使用vant组件ActionSheet 下拉面板,内容区域滚动会触发。scroll-view自定义下拉刷!即使设置停止下拉刷新也不行。
    • ¥15 专业问题提问,7月5号2点之前
    • ¥25 使用cube ai 导入onnx模型时报错
    • ¥15 关于#微信小程序#的问题:用一个网页显示所有关联的微信小程序数据,包括每个小程序的用户访问量
    • ¥15 root的安卓12系统上,如何使apk获得root或者高级别的系统权限?
    • ¥20 关于#matlab#的问题:如果用MATLAB函数delayseq可以对分数延时,但是延时后波形较原波形有幅度上的改变
    • ¥15 使用华为ENSP软件模拟实现该实验拓扑
    • ¥15 通过程序读取主板上报税口的数据
    • ¥15 matlab修改为并行
    • ¥15 尝试访问%1服务的windows注册表时遇到问题。必须先解决此问题,然后才能运行安装过程。(请确认您正在使用管理员权限运行)373