概述
活动地址:CSDN21天学习挑战赛
目录
前言
一、上三角矩阵
描述
输入描述:
输出描述:
二、解题思路
1.错误代码(一开始看错,直接整了个矩阵给它)
2、正确代码
总结
前言
今天和大家一起学习一下如何判断上三角矩阵。
一、上三角矩阵
题目来源:
KiKi判断上三角矩阵_牛客题霸_牛客网
描述
KiKi想知道一个n阶方矩是否为上三角矩阵,请帮他编程判定。上三角矩阵即主对角线以下的元素都为0的矩阵,主对角线为从矩阵的左上角至右下角的连线。
输入描述:
第一行包含一个整数n,表示一个方阵包含n行n列,用空格分隔。 (2≤n≤10)
从2到n+1行,每行输入n个整数(范围-231~231-1),用空格分隔,共输入n*n个数。
输出描述:
一行,如果输入方阵是上三角矩阵输出"YES"并换行,否则输出"NO"并换行。
二、解题思路
1.错误代码(一开始看错,直接整了个矩阵给它)
代码如下(示例):
#include<stdio.h>
int main(){
int n;
int arr[10][10]={0}; //初始化
scanf("%d",&n);
int j=0,i=0,a=0,w;
while(j<=n){ //设置循环条件
for(i=j;i<n;i++){ //输入数组
arr[j][i]=++a;
}
j++; //斜向下移动一位
}
for(int k=0;k<n;k++){ //输出,有输入的就输出数字,没有输入的数组在前面已经初始化为0
for(int l=0;l<n;l++){
printf("% d",arr[k][l]);
}
printf("n");
}
return 0;
}
不过我个人认为里面也有一些方法值得大家学习学习。
2、正确代码
int main()
{
int arr[10][10] = { 0 };
int i = 0;
int j = 0;
int n = 0;
scanf("%d", &n);
int sum = 0;
for (i = 0;i < n;i++)
{
for (j = 0;j < n;j++)
{
scanf("%d", &arr[i][j]); //输入
while (i > j) //下三角部分
{
sum += arr[i][j]; //如果是上三角矩阵,下三角理应都为0
break;
}
}
}
if (sum==0) //判断
{
printf("YESn");
}
else
{
printf("NOn");
}
return 0;
}
要注意判断循环的条件(i>j),这些循环的条件的判断对于我们去解循环数组,比如回型、蛇形(这几天会更)是很关键的,希望大家能仔细琢磨一下~
总结
以上就是今天要讲的内容,本文仅仅简单介绍了如何判断上三角矩阵,希望对大家有少少帮助~
最后
以上就是可耐龙猫为你收集整理的牛客网——判断上三角矩阵前言一、上三角矩阵二、解题思路2、正确代码总结的全部内容,希望文章能够帮你解决牛客网——判断上三角矩阵前言一、上三角矩阵二、解题思路2、正确代码总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复