带你学c带你飞s1e25动动手
#include <stdio.h>#include <stdlib.h>
int main()
{
//获得矩阵尺寸
int m,p,n;
printf("输入第一个矩阵尺寸:%d*%d\n",&m,&p);
printf("输入第二个矩阵尺寸:%d*%d\n",&p,&n);
int a;
int b;
//初始化存放乘积的矩阵
int c;
for(int i=0;i<m;i++)
{
for (int j=0;j<n;j++)
{
c=0;
}
}
//获取矩阵具体值
printf("输入第一个矩阵:");
for (int i=0;i<m;i++)
{
for (int j=0;j<p;j++)
{
scanf("%d",&a);
}
}
//获取第二个矩阵
printf("输入第二个矩阵:");
for (int i=0;i<p;i++)
{
for (int j=0;j<n;j++)
{
scanf("%d",&b);
}
}
//计算乘积
int i, j, k, row;
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
for (k = 0; k < p; k++)
{
c += a * b;
}
}
}
// row 取行数最大值
row = m > p ? m : p;
for (i = 0; i < row; i++)
{
// 打印A
printf("|");
for (j = 0; j < p; j++)
{
if (i < m)
{
printf("\b%d ", a);
printf("|");
}
else
{
printf("\b\b\b ");
}
}
// 打印 * 号
if (i == row / 2)
{
printf(" * ");
}
else
{
printf(" ");
}
printf("|");
// 打印B
for (j = 0; j < n; j++)
{
if (i < p)
{
printf("\b%d ", b);
printf("|");
}
else
{
printf("\b\b\b ");
}
}
// 打印 = 号
if (i == row / 2)
{
printf(" = ");
}
else
{
printf(" ");
}
// 打印C
printf("|");
for (j = 0; j < n; j++)
{
if (i < m)
{
printf("\b%d ", c);
printf("|");
}
else
{
printf("\b\b\b ");
}
}
printf("\n");
}
system("pause");
return 0;
}
我用的vscode最新版
编译器是mingw64位的
怎么解决啊?我也没有使用void和null指针更没有对它们进行解引用
{:10_266:} 为什么会这样啊{:10_266:}{:10_266:}{:10_266:}{:10_266:} 和编译器没关系,是和代码有关系。
用printf输入数据?我没见过这种用法。
而且你的m, p, n 都没有初始化,当然运行不了 qiuyouzhi 发表于 2021-1-3 10:27
和编译器没关系,是和代码有关系。
用printf输入数据?我没见过这种用法。
而且你的m, p, n 都没有初始化 ...
啊,我没注意到
谢谢啊
页:
[1]