首先介绍用二维数组打印矩阵的转置
在线性代数中我们知道矩阵的转置就是将矩阵的行和列互换即可那么在二维数组中将其行和列互换就达到矩阵转置的效果代码演示如下
#include<stdio.h>
int main()
{
int arr[20][20] = {0};
int i = 0, j = 0, n = 0, m = 0;
scanf("%d%d", &n, &m);
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
scanf("%d", &arr[i][j]);
}
}
for (i = 0; i < m; i++)
{
for (j = 0; j < n; j++)
{
printf("%d ", arr[j][i]);
}
printf("\n");
}
return 0;
}
用二维数组打印空心正方形我们只需要将数组内部打印为空格即可代码如下
#include<stdio.h>
int main()
{
char arr[50][50];
int i = 0, j = 0, n = 0;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
if (i == 0 || i == n - 1)
arr[i][j] = '*';
else if (j == 0 || j == n - 1)
arr[i][j] = '*';
else if (i != 0 || i != n - 1 || j != 0 || j != n - 1)
arr[i][j] = ' ';
printf("%c", arr[i][j]);
}
printf("\n");
}
return 0;
}
同样的我们可以打印只有对角线有元素的矩阵
#include<stdio.h>
#include<stdio.h>
int main()
{
char arr[50][50];
int i = 0, j = 0, n = 0;
scanf("%d", &n);
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
if (i == j)
{
arr[i][j] = '*';
}
else if (i + j == (n - 1))
arr[i][j] = '*';
else
arr[i][j] = ' ';
printf("%c", arr[i][j]);
}
printf("\n");
}
return 0;
}
好了二维数组的简单演示就结束了感谢观看;