一.上三角矩阵判断.
上三角矩阵:
上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。
1 | 7 | 9 |
0 | 5 | 7 |
0 | 0 | 5 |
以下题为例:
牛客网:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线
int main()
{
int n = 0;
scanf("%d", &n);
int arr[n][n];
int i = 0;
for (i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
scanf("%d", &arr[i][j]);
}
}
int sum = 0;
for (i = 1; i < n; i++)
{
for (int j = 0; j < i; j++)
{
sum += arr[i][j];
}
}
if (0 == sum)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
return 0;
}
这题是第一题的简单版本!!!
这里就直接写题解代码了:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int n = 0;
scanf("%d", &n);
int arr[1000][1000] = { 0 };
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
{
scanf("%d", &arr[i][j]);
}
}
int sum = 0;
for (int i = 0; i < n; i++)
{
for (int j = 0; j < i; j++)
{
sum += arr[i][j];
}
}
if (0 == sum)
{
printf("YES\n");
}
else
{
printf("NO\n");
}
return 0;
}
二.矩阵交换.
以下题为例:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
int n = 0;
int m = 0;
scanf("%d%d", &n, &m);
int arr1[n][m];
for(int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
scanf("%d", &arr1[i][j]);
}
}
int k = 0;
scanf("%d", &k);
char one = 0;
int a = 0;
int b = 0;
for (int i = 0; i < k; i++)
{
getchar();//\n
scanf("%c%d%d", &one, &a, &b);
if ('r' == one)
{
for (int j = 0; j < m; j++)
{
int tmp = arr1[a - 1][j];
arr1[a - 1][j] = arr1[b - 1][j];
arr1[b - 1][j] = tmp;
}
}
if ('c' == one)
{
for (int j = 0; j < n; j++)
{
int tmp = arr1[j][a - 1];
arr1[j][a - 1] = arr1[j][b - 1];
arr1[j][b - 1] = tmp;
}
}
}
//输出
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
printf("%d ", arr1[i][j]);
}
printf("\n");
}
return 0;
}
注意:这题需要的getchar(),本人就在这卡了半天,可能我太笨了,但还是给读者说明下!
以上为目前我接触到的矩阵问题,希望对读者有帮助,喜欢点个赞哈!!!