#include<stdio.h>
#include<stdlib.h>
void main()
{
int off(int i,int j);
int i,j,s,n;int *pa,*pb,*pc;
printf("请输入矩阵的阶数n=");
scanf("%d",&n);
pa=(int *)malloc(sizeof(int)*n*(n+1)/2);
pb=(int *)malloc(sizeof(int)*n*(n+1)/2);
pc=(int *)malloc(sizeof(int)*n*(n+1)/2);
printf("请输入矩阵A=\n");
for(i=0;i<n;i++)
for(j=0;j<=i;j++)
scanf("%d",&pa[off(i,j)]);
printf("请输入矩阵B=\n");
for(i=0;i<n;i++)
for(j=0;j<=i;j++)
scanf("%d",&pb[off(i,j)]);
for(i=0;i<n;i++)
for(j=0;j<=i;j++)
{
pc[off(i,j)]=0;
for(s=j;s<=i;s++)
pc[off(i,j)]+=pa[off(i,s)]*pb[off(s,j)];
}
printf("A*B=\n");
for(i=0;i<n;i++)
for(j=0;j<=i;j++)
{
printf("%4d",pc[off(i,j)]);
if(i==j)printf("\n");
}
}
int off(int i,int j)
{
return i*(i+1)/2+j;
}