#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 4
int main(void)
{
int test[SIZE][SIZE];
int i,j;
char temp;
for(i=0;i<SIZE;i++)
{
for(j=0;j<SIZE;j++)
{
scanf_s("%d",&test[i][j]);
temp=getchar();
}
}
///
//验证输入:
printf("--------------------------------\n");
for(i=0;i<SIZE;i++)
{
for(j=0;j<SIZE;j++)
{
printf("%d ",test[i][j]);
}
printf("\n");
}
///
//存储上三角与下三角
int top[SIZE * (SIZE + 1) / 2];
int topcontrary[(SIZE * SIZE) - (SIZE * (SIZE + 1) / 2)];
int buttom[SIZE * (SIZE + 1) / 2];
int buttomcontrary[(SIZE * SIZE) - (SIZE * (SIZE + 1) / 2)];
int tempint=0;
//上三角
for (i = 0; i < SIZE; i++)
{
for (j = i; j < SIZE; j++)
{
top[i * (2 * SIZE- i + 1) / 2 + j - i] = test[i][j];
}
}
printf("上三角提取完毕\n");
for (i = 0; i < SIZE*(SIZE+1)/2; i++)
{
printf("%d ", top[i]);
}
printf("\n");
printf("上三角的反三角提取完毕\n");
for (i = 1; i < SIZE; i++)
{
for (j = 0; j < SIZE; j++)
{
if (i == j)
break;
topcontrary[tempint++] = test[i][j];
}
}
for (i = 0; i < (SIZE * SIZE) - (SIZE * (SIZE + 1) / 2); i++)
{
printf("%d ", topcontrary[i]);
}
///
//下三角
for (i = 0; i < SIZE; i++)
{
for (j = 0; j <=i; j++)
{
buttom[i * (i + 1) / 2 + j] = test[i][j];
}
}
printf("\n下三角提取完毕\n");
for (i = 0; i < SIZE * (SIZE + 1) / 2; i++)
{
printf("%d ", buttom[i]);
}
printf("\n");
printf("下三角的反三角提取完毕\n");
tempint = 0;
for (i = 0; i < SIZE; i++)
{
for (j = i + 1; j < SIZE; j++)
{
buttomcontrary[tempint++] = test[i][j];
}
}
for (i = 0; i < (SIZE * SIZE) - (SIZE * (SIZE + 1) / 2); i++)
{
printf("%d ", buttomcontrary[i]);
}
printf("\n");
//进行一系列的判断
int judgetop=0, judgebuttom=0;
//buttomcontrary判断
j = buttomcontrary[0];
for (i = 0; i < (SIZE * SIZE) - (SIZE * (SIZE + 1) / 2); i++)
{
if (buttomcontrary[i] != j)
break;
}
if (i >= (SIZE * SIZE) - (SIZE * (SIZE + 1) / 2))
{
judgebuttom = 1;
}
//topcontrary判断
j = topcontrary[0];
for (i = 0; i < (SIZE * SIZE) - (SIZE * (SIZE + 1) / 2); i++)
{
if (topcontrary[i] != j)
break;
}
if (i >= (SIZE * SIZE) - (SIZE * (SIZE + 1) / 2))
{
judgetop = 1;
}
//
//判断结果的输出
if (judgetop == 1 && judgebuttom != 1)
{
printf("这是一个上三角矩阵\n");
}
else if (judgetop != 1 && judgebuttom == 1)
{
printf("这是一个下三角矩阵\n");
}
else if (judgetop == 1 && judgebuttom == 1)
{
printf("这是一个上三角矩阵也是一个下三角矩阵\n");
}
else
{
printf("这不是一个上三角矩阵也不是一个下三角矩阵\n");
}
return 0;
}
23数组矩阵-三角矩阵
原创
©著作权归作者所有:来自51CTO博客作者高万禄的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:24二叉链表的递归询问建立
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【Canvas与艺术】绘制斜置黄色三角biohazard标志
使用Html5/Canvas绘制斜置黄色三角biohazard标志。
canvas biohazard -
【Canvas与艺术】绘制黄色三角辐射警示标志
使用Html5/Canvas绘制黄色三角电离辐射警示标志
canvas 辐射 radiation