第三周作业
1.判断上三角矩阵
上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。
本题要求编写程序,判断一个给定的方阵是否上三角矩阵。
输入样例:
2
3
1 2 3
0 4 5
0 0 6
2
1 0
-8 2
输出样例:
YES
NO
1).实验代码
#include<stdio.h>
int main()
{
int T,n;
scanf("%d\n",&T);
int i,j,t,f;
int a[10][10];
for(t=1;t<=T;t++)
{
f=1;
scanf("%d\n",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&a[i][j]);
if(i>j){
if(a[i][j]!=0) {
f=0;
}
}
}
}
if(f==1) printf("YES\n");
else printf("NO\n");
}
return 0;
}
2).设计思路
3).问题和解决方案
将判断是否为上三角矩阵的变量在for语句外赋值了
改正:将它放在for内
4).运行结果
2.最大子数组和给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。
输入:
[1, -2, 3, 10, -4, 7, 2, -5]
输出:
18
1).实验代码
#include<stdio.h>
#define p 8
int main()
{
int a[p],b[p];
int i,j;
for(i=0;i<p;i++)
{
scanf("%d",&a[i]);
b[i] = a[i];
}
for(i=0;i<p-1;i++)
{
for(j=i+1;j<p;j++)
{
a[i] = a[i] + a[j];
if(b[i] < a[i])
{
b[i] = a[i];
}
}
}
for(i=0;i<p;i++)
{
if(b[0] < b[i])
{
b[0] = b[i];
}
}
printf("%d",b[0]);
return 0;
}
2).设计思路
这道题目难度太大了,在看各班助教发的教学视频
学习总结
| 周/日期 | 这周所花的时间 | 代码行 | 学到的知识点 | 目前比较疑惑的问题 |
| -------- | :-----: | :----: | :-----: | :----------😐:---------😐
|3/11-3/17 | 4.5小时 | 78 | 二维数组 | 对多维数组概念模糊 |