第三周基础作业

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

1.实验代码

include <stdio.h>

define MAX(x,y) x>y?x:y

int main( )

{

int arr[ ] = {1,-2,3,10,-4,7,2,-5};

int n = 8 ; //数组的长度

int sum = 0 , max = 0 ;

for (int i = 0 ; i < n ; i ++ )

{

     sum+=arr[i] ;


     max = MAX(sum,max) ;


     if ( sum < 0 ) sum = 0 ;

}

printf("%d\n",max);

}

2.流程图

3.遇到的问题
1.对于“fscanf()”和“fprintf()”的用法有点陌生1.
解决方法:翻看资料,知道了"fscanf()"的功能是把磁盘文件数据读出保存到变量(内存),而“fprintf()”的功能是将数据和字符等写入文件

2:不怎么会判断最大子数组
解决方法:自己编写了很久之后,看了其他同学的博客,然后对比修改

4.运行截图

5.学习进度条

posted on 2019-03-16 11:28  妄想拥有  阅读(133)  评论(1编辑  收藏  举报

导航