第三周作业

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 | 二维数组 | 对多维数组概念模糊 |

posted @ 2019-03-15 21:33  laozhupeiqi  阅读(136)  评论(1编辑  收藏  举报