永发信息网

JAVA:关于数列的问题

答案:3  悬赏:0  手机版
解决时间 2021-04-14 06:29

题目是:有一个数列,1、循环输出数列的值。2、求数列中所有数值的和。3、猜数游戏,键盘输出一个数,判断是否在此数列中有次数。

我的代码如下:

import java.util.*;
public class series
{
public static void main(String[] args)
{
int s[]=new int[]{8,4,2,1,23,344,12};
int sum=0;
for(int i=0;i<=s.length;i++)
{
sum=sum+s[i];
}
System.out.println(sum);
Scanner input=new Scanner(System.in);
System.out.println("输入一个整数:");
int a=input.nextInt();
for(int i=0;i<=s.length;i++)
{
if(s[i]==a)
System.out.println("此数列有此数");
else
System.out.println("此数列无次数");
}
}
}

会提示出错:init:
deps-jar:
compile-single:
run-single:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at javaapplication1.series.main(series.java:12)
Java Result: 1
请大家指点下怎么修改,谢谢!

最佳答案
for(int i=0;i<=s.length;i++)
{
sum=sum+s[i];
}这里 数组 是从0开始下标的 假如5个长度的数组 下标 是 0-4所以for(int i=0;i<=s.length;i++)要改为for(int i=0;i<s.length;i++)或者for(int i=0;i<=s.length-1;i++)
全部回答

您的for循环段范围有问题,算法设计也存在缺陷。建议把两个for循环的范围都改为

for(int i=0;i<s.length;i++)

然后把第二个for循环的算法改为

boolean hasNumber = false;

for(int i=0;i<s.length;i++) { if(s[i]==a) {

hasNumber = true;

break;

}

}

if (hasNumber) System.out.println("此数列有此数"); else System.out.println("此数列无次数");

for(int i=0;i<=s.length;i++) 改成

for(int i=0;i<s.length;i++)

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我要起个Q名,谁能帮我起个好听的
泰州有什么有名的小吃?
求解诸位高人,孙悟空对阵二郎神时为什么不用
中国哪个城市日本摩托车最多?骑得人也多
泰菩提地址在哪,我要去那里办事
什么是星座命盘
初三化学化合价的问题
饥荒火蜻蜓怎么打视频,饥荒火蜻蜓怎么打视频
c语言a%3==0是啥意思?
Mary as well as her elder sister who Chine
合作工程还不了合伙人资金被起诉诈骗怎么办
看懂家具图纸有什么技巧
为什么电脑做完系统后耳机就没声音了?》
She Cooks the meals.对还是错?
住房补贴申请成功后拿什么证件办理
推荐资讯
如何用PS把照片做成80PX*80PX
QQ开哪个钻好
要买一个貔貅腰带扣多大合适呢?
阿里旅行信用住住完了可以逾期多久还款,有什
上海2009年12-2010年1月的招聘会信息谁能提供
为什么狮子是外国动物之王 老虎是中国动物之
鱼出没自助寿司(杭州大厦购物城店)在什么地方
买到杭州东出发的票,误去了杭州,可以改签吗
济南成全国骑车速度最快城市 退休大爷为主力
高三了怎样才能集中精神的学习?有什么有效的
东方绯想天是什么游戏?
农场里面刷新为什么刷新不出来
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?