第三周作业

第三周作业

题目

给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。

输入样例:

1, -2, 3, 10, -4, 7, 2, -5

输出样例:

3, 10, -4, 7, 2
18

实验代码:

#include<stdio.h>
#include<stdlib.h>
int main()
{
	FILE*fp;
	int i,j,p,q;
	int a[10],max=0,sum=0;
	
	if((fp=fopen("D:\\c + +\\zhangwenlong1.txt","r+"))==NULL)
	{
		printf("File open error!\n");
		exit(0);
	}
	
	for(i=0;i<8;i++)
	{
		fscanf(fp,"%d",&a[i]);
		printf("%d ",a[i]);
	}
	printf("\n");
	 
    for(i=0;i<8;i++)
	{
        sum=0;
        for(j=i;j<8;j++)
        {
        	sum=sum+a[j];
            if(sum>max)
                max=sum;
		}
    }
	
	for(i=0;i<8;i++)
	{
		sum=0;
		for(j=i;j<8;j++)
		{
			sum=sum+a[j];
			if(max==sum)
			{
				p=i;
				q=j;
			}
		}
	}
	
	
	for(j=p;j<=q;j++)
	{
		printf("%d ",a[j]);
		fprintf(fp,"%d ",a[j]);
	}
	printf("\n%d",max);
	fprintf(fp,"%d",max);
	if(fclose(fp)){
		printf("Can not close the file! \n");
		exit(0);
	}
	return 0;
}

设计思路:

本题遇到的问题及解决方法:

问题 输出正确但并没有写入文件
解决方法 删除原有的文件并新建一个文件代替

运行截图:

心得体会与用时:

用时 4--5个小时

心得体会 题目做起来难,但是只要细心和团结协作就能做出来。

PTA作业:

判断上三角矩阵 (15 分)
上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。
本题要求编写程序,判断一个给定的方阵是否上三角矩阵。

输入格式:

输入第一行给出一个正整数T,为待测矩阵的个数。接下来给出T个矩阵的信息:每个矩阵信息的第一行给出一个不超过10的正整数n。随后n行,每行给出n个整数,其间以空格分隔。

输出格式:

每个矩阵的判断结果占一行。如果输入的矩阵是上三角矩阵,输出“YES”,否则输出“NO”。

输入样例:

2
3
1 2 3
0 4 5
0 0 6
2
1 0
-8 2

输出样例:

YES
NO

实验代码:

#include<stdio.h>
int main()
{
	int i,j,k,T,n,count;
	int a[10][10];
	
	scanf("%d",&T);
	
	for(k=0;k<T;k++){
		count = 1;
		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<n;j++){
				if(i>j && a[i][j] != 0){
					count=0;
				}
			}
		}
	if(count)
	printf("YES\n");
	else
	printf("NO\n");
	}
}

设计思路:

本题遇到的问题及解决方法:

问题 编译正确但是答案不正确

解决方法 最后的判断语句要在for语句的循环中

运行截图:

心得与用时:

用时 3--4小时
心得 做题细心认真一点就能少出错误

posted @ 2019-03-15 17:28  zzwwll  阅读(185)  评论(1编辑  收藏  举报