题目:输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:
输入1 个正整数 n (1≤n≤6)和 n 阶方阵 a 中的元素,如果 a 是上三角矩阵, 输出"YES", 否则, 输出"NO"。上三角矩阵指主对角线以下的元素都为0的矩阵, 主对角线为从矩阵的左上角至右下角的连线。
输入输出示例:括号内为说明
输入:
2 (repeat=2)
3 (n=3)
1 2 3
0 4 5
0 0 6
2 (n=2)
1 0
-8 2
输出:
YES
NO
以下是我的解答,希望帮忙看下哪里有一步有问题,不要答案!谢谢大神们了!
#include <stdio.h>
#include <math.h>
int main(void)
{
int ri,repeat;
int n,i,j;
int flag=0;
int a[6][6];
scanf("%d",&repeat);
for(ri=0;ri<repeat;ri++)
{scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<n;i++)
{
for(j=0;j<i;j++)
if(a[i][j]!=0)
{
flag=1;
break;
}
if(flag)
break;
}
if(flag)
printf("NO\n");
else
printf("YES\n");
}
}
首先说下你错在哪里:
从上图可以看出来是每一次循环计算一次结果,所我的想法是使用数组去记录每次结果,后再打印,代码如下:
#include <stdio.h>