zoukankan      html  css  js  c++  java
  • 第三周基础作业

    基础作业
    本周没上课,但是请大家不要忘记学习。
    本周请大家完成上周挑战作业的第一部分:给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。
    例如:[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 ",max);

    }

    2.流程图

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

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

    4.运行截图

    5.学习进度条

  • 相关阅读:
    Linux 分区与挂载
    Linux Shell 编程总结
    Java AtomicIntegerFieldUpdater 抽象类
    Java 内部类加载顺序
    Java AtomicIntegerArray 类
    Java AtomicInteger 类
    Java ReentrantLock 类
    Java Runnable 接口
    Java Supplier 接口
    Java Consumer 接口
  • 原文地址:https://www.cnblogs.com/yun522/p/10541470.html
Copyright © 2011-2022 走看看