zoukankan      html  css  js  c++  java
  • 第三周总结

    2019年春季学期第三周作业

    一、本周完成的作业:

    基础作业

    本周请大家完成上周挑战作业的第一部分:给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。
    例如:[1, -2, 3, 10, -4, 7, 2, -5]的最大子数组为[3, 10, -4, 7, 2]
    输入:
    请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。
    输出
    在不删除原有文件内容的情况下,将最大子数组以及子数组的和写入文件。

    1)、实验代码

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

    2)、设计思路

    3)、本题调试过程碰到的问题及解决方法

    如下图,运行后文件中有最开始输入的数据,也有最大和,只是少了最大和的子数组,这个子数组一开始我有想过
    要用什么办法才能给输出来,想了几天想不出来。我就调试了一下程序,看看能在什么地方把最大和数组数据拿出来,
    调试后,发现不知如何拿。因为这个方法是把所有的子数组和都求了出来,我不知道要在什么地方把数据提出来。

    4)、运行结果图

    预习作业

    判断上三角矩阵
    上三角矩阵指主对角线以下的元素都为0的矩阵;主对角线为从矩阵的左上角至右下角的连线。

    本题要求编写程序,判断一个给定的方阵是否上三角矩阵。

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

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

    1)、实验代码

    #include<stdio.h>
    int main ()
    {
    	int i,m,n;
    	scanf ("%d",&m);
    	int result = 1;
    	int s,k;
    	for (i=0; i<m; i++)	{
    		scanf ("%d",&n);
    		int a [n] [n];
    		for (s=0; s<n; s++) {
    			for (k=0; k<n; k++) {
    				scanf ("%d",&a [s] [k]);
    			}
    		}
    		for (s=1; s<n; s++) {
    			for (k=0; k<s; k++) {
    				if (a[s][k] != 0)  {
    				result = 0;
    				break;
    				}
    			}
    		}
    		if (result == 0)  {
    		    printf ("NO
    ");
    	   }
    		else {
    		    printf ("YES
    ");
    		}
    		result = 1;
        }
    	return 0;
    }
    

    2)、设计思路

    3)、本题调试过程碰到的问题及解决方法

    如图,图中代码运行结果很明显可以看到是一个矩阵后接一个结果,我总是纠结原题目中是要求两个结果一下子
    全输出来的。于是总是在想着怎样改才能使结果全部输出来。我尝试过重新定义一个数组用来存放结果,到最后的最后
    一下全输出来,但对数组的运用不是很熟练,总是搞不成。

    4)、运行结果图

    二、学习进度条

    周/日期 这周所花的时间 代码行数 学到的知识点简介 目前比较迷惑的问题
    3/2-3/8 三天六小时 50 1、定义、运用文件指针;2、如何打开、关闭文件3、如何读出指定文件中的数据;4、如何向指定文件中写入数据; 字符、字符串有什么区别?二者输入、输出有没有很大不同?什么才算字符串?什么算字符?在文件中二者有没有差别?
    3/9-3/15 四天三小时 180 1、运用二维数组解决问题,矩阵的判断;2、对一组数的所有子数组求和 如何在输出时利用数组的性质

    三、学习感悟

    本周虽然没有课,但依然没松懈。布置的题目其实自己看看课本也就能懂。二维数组没学的时候总感觉有些复杂,看了书后感觉也没什么。在做题过程中,最让我头疼的就是输出的格式,明明 pta 中要求的就是连续输出两个结果,我纠结半天,原来挨个输出也可通过。还有就是另一题目的子数组并没有成功输出,
    还是很遗憾,可能是自己没有尽力去思考,实在是.......

  • 相关阅读:
    Shell脚本——DHCP自动部署
    Shell脚本——DNS自动部署
    (四)跟我一起玩Linux网络服务:DHCP服务配置之中继代理
    Java-线索二叉树的实现
    Java-堆排序
    Java-二叉树-插入、删除、遍历
    Java-进制转换
    Java--消除重复数字后的最大值
    Java-动态规划-最多苹果数量的方法
    Java-Pi的几种实现
  • 原文地址:https://www.cnblogs.com/songguanhao/p/10540096.html
Copyright © 2011-2022 走看看