您的位置:首页 > 其它

软件工程作业06

2016-04-11 17:46 155 查看


实验6:环形数组求和

程序员:吕泽坤,黄梓宣

日期:17:31:35

(一)

设计思路:

1输入数组长度

2输入数组

2.2进行数组变为循环数组,

for(i=length;i<2*length;i++)
{
arry[i]=arry[i-length];
}
3进行最大值求解

3.2首先确定循环次数length

3.2.2arry2[j]=arry[j];表为首位整数

3.2.3进行子数组(长度为length)循环次数

//当前i个元素之和大于0就接着往后加arry2[i]=arry[i]+arry2[i-1];
)//当前i个元素之和小于0就不加,直接把下一个元素的值直接取下来
arry2[i]=arry[i];
3.2.4进行max比较确定

4输出Max

(二)

实验代码:

packageshuzu01;

importjava.util.Scanner;
importjava.lang.*;
publicclassTest{

privatestaticbooleanflase;
privatestaticScannerin;
@SuppressWarnings("unused")
publicstaticvoidmain(Stringarg[])
{
inti,j=0;
Scannerinput=newScanner(System.in);
System.out.println("请输入一个数组的长度");
intlength=input.nextInt();

int[]arry=newint[2*length];
int[]arry2=newint[2*length];

System.out.println("请输入一个数组");
for(i=0;i<length;i++)
{

inta=input.nextInt();
isNumeric(a);
if(false)
{
System.out.println("请输入一个整数");
ints=input.nextInt();

arry[i]=s;
}
arry[i]=a;
j++;
}
//形成环形数组
for(i=length;i<2*length;i++)
{
arry[i]=arry[i-length];
}
//求和最大值
intmax=arry[0];
for(j=0;j<length;j++)
{
arry2[j]=arry[j];
max=Math.max(max,arry[j]);
for(i=j+1;i<length+j;i++)
{
if(arry2[i-1]>=0)//当前i个元素之和大于0就接着往后加
arry2[i]=arry[i]+arry2[i-1];
if(arry2[i-1]<0)//当前i个元素之和小于0就不加,直接把下一个元素的值直接取下来
arry2[i]=arry[i];

//找到最大值
max=Math.max(max,arry2[i]);
}
}
System.out.print("最大值"+max);//打印最大值

/*for(i=0;i<length;i++)
{
System.out.println(arry[i]);
}*/

}

publicstaticbooleanisNumeric(inta)
{
if(!Character.isDigit(a))
{
returnfalse;
}

returntrue;
}

}




(四)总结

首先进行的是循环数组天加,其次在数组求和是数组溢出,超过范围。斌进行数字的判断,提示输入错误。

团队照片:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: