博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个整形数组中最大值求和问题(3)
阅读量:4317 次
发布时间:2019-06-06

本文共 1390 字,大约阅读时间需要 4 分钟。

新要求:

在“一个整形数组中最大值求和问题(2)”的基础之上,加入了新要求。

将一位数组变成环形数组。

 

首先在自己看到这道题目的时候,并没有什么思路,然后老师一点一点的旁敲侧击,自己又在纸上动手画了画,最后自己实现了这个项目。值得说明的一点是,自己虽然能够实现,但是当与同学们上台分享时,并没有很好的表达出自己的意思,一方面,自己的语言表达能力还很欠缺,在日后的学习生活中要有意识地去改善这一方面。另一方面,自己地逻辑思维不是很清晰,正如主任所说的那样“这只是一个小小地项目都没能很好的表达出自己,那上百行地大项目,更说不出来,也做不出来了。”自己地逻辑思维能力,也要逐步提高。

 

设计思想:

环形数组,则程序需要在源程序的基础之上,加入实现最后一个数加开头数地想法,即实现n->(n-1)的计算。

首先在原代码基础之上,加入变量a(用来表示数组的长度,由于数组从0开始表示,故赋初值-1),然后当数组遍历完成一次之后,将已有的sum值与(sum+c[0])、a与数组长度n两两进行比较,两个条件都满足时,才执行,将已有的sum值接着从头开始相加的代码,且每执行一次,均需判断a与数组长度的关系。一但a大于等于数组长度n,则跳出循环,此时的f为子数组和的最大值。

实验截图:

源代码:

import java.util.Scanner;public class sum02 {    public static void main(String[] args) {        // TODO Auto-generated method stub        Scanner sc = new Scanner(System.in);        System.out.println("请输入数组的长度为:");        int n=sc.nextInt();        int[] c = new int[n];        System.out.println("请输入"+n+"个整数");        for(int i=0;i
f) { f = sum; } a=a+1; } //System.out.println(a); if( a
f) { for(int i=0;i
f) { f = sum; } a=a+1; if(a >= n) { break; } } } if(sum == 0) { for(int i=0;i

 

转载于:https://www.cnblogs.com/Qi77/p/10596235.html

你可能感兴趣的文章
笔记:Hadoop权威指南 第8章 MapReduce 的特性
查看>>
JMeter响应数据出现乱码的处理-三种解决方式
查看>>
获取设备实际宽度
查看>>
Notes on <High Performance MySQL> -- Ch3: Schema Optimization and Indexing
查看>>
Alpha冲刺(10/10)
查看>>
数组Array的API2
查看>>
为什么 Redis 重启后没有正确恢复之前的内存数据
查看>>
No qualifying bean of type available问题修复
查看>>
第四周助教心得体会
查看>>
spfile
查看>>
Team Foundation Service更新:改善了导航和项目状态速查功能
查看>>
WordPress资源站点推荐
查看>>
Python性能鸡汤
查看>>
android Manifest.xml选项
查看>>
Cookie/Session机制具体解释
查看>>
ATMEGA16 IOport相关汇总
查看>>
有意思的cmd命令
查看>>
js正則表達式语法
查看>>
Git学习系列-Git基本概念
查看>>
c#多个程序集使用app.config 的解决办法
查看>>