马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 大C神 于 2019-4-14 19:17 编辑
不知道还有什么bug, 弄了好久了,不是排版错误,就是计算错误或者读取错误, 测试了一通占时还没发现有新的bug了 , 不过不放心大家帮看一下, 学习学习
还有那个只有一个乘号和等于号是怎么做到的
#include <stdio.h>
int main()
{
int a, b, d, e;
printf("请输入第一个矩阵的尺寸(M*P):");
scanf("%d*%d", &a, &b);
printf("请输入第二个矩阵的尺寸(P*N):%d*", b);
scanf("%d", &d);
int g[a][b], o[b][d];
int(*pg)[b] = g, *px = *pg;
int(*po)[d] = o, *pt = *po, *py = NULL;
printf("请输入第一个矩阵:\n");
while (pg != &g[a])
{
while (px != &(*pg)[b])
{
scanf("%1d", px);
px++;
}
pg++;
}
printf("请输入第二个矩阵:\n");
while (po != &o[b])
{
while (pt != &(*po)[d])
{
scanf("%1d", pt);
pt++;
}
po++;
}
printf("计算结果为:\n");
for (pg = g, po = o; *pg < g[a] || *po < o[b]; pg++, po++)
{
printf(" ");
for (px = *pg; px != &(*pg)[b]; px++)
{
if (px >= g[a])
printf(" ");
else
printf("%-1d ", *px);
}
printf(" |*| ");
for (pt = *po; pt != &(*po)[d]; pt++)
{
if (pt >= o[b])
printf(" ");
else
printf("%-1d ", *pt);
}
printf(" |=| ");
if (px <= g[a])
{
for (pt = &**o; pt < &(*o)[d]; pt++)
{
for (px = *pg, py = pt, e = 0; px < &(*pg)[b]; py += d, px++)
{
e += *py * *px;
}
printf("%-3d ", e);
}
}
printf("\n");
}
return 0;
}
|