|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
// 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[i][j]);
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[i][j]);
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[i][j]);
printf("|");
}
else
{
printf("\b\b\b ");
}
}
printf("\n");
}
return 0;
}
输出:
| 1 2 3 | | 1 4 | | 14 32 |
| 4 5 6 | * | 2 5 | = | 32 77 |
| 3 6 |
最开始前面一些代码省略 了,在打印A和后面的地发 里面“\b%d” "\b\b\b " 为什么要这么写呢? 我查了\b 是退格的意思,但是还是不是很明白在这里为什么要这么用,这几句代码具体是什么意思呢? 谢谢!
// 打印A
printf("| ");
for (j = 0; j < P; j++)
{
if (i < M)
{
printf("\b%d ", a[i][j]);
printf("|");
}
else
{
printf("\b\b\b ");
}
}
//打印A
printf("| "); //注意这里“|”后面跟着两个空格
for (j = 0; j < P; j++)
{
if (i < M)
{
printf("\b%d ", a[i][j]); //这句的意思是如果在有效行数M(就原来有M行东西)里面,打印整数%d,但是由于前面有两个空格,为了美观,可以退回一格。(其实空格还有占位的作用,还有,\b是退回上一格的位置,如果没有新内容覆盖的话,退格就没有作用哦,它跟删除还是有区别的)
printf("|");
}
else
{
printf("\b\b\b "); //这一行就是把“| ”这一个整体全都删除,由于“| ”占了三个位置,就退三格,然后用三个空字符替换“ ”
}
}
懂了记得采纳哈,不懂再问
|
|