java数组越界错误,我的这串代码怎么改啊?

packageHomework.Demo;publicclassHomework04{publicstaticvoidmain(String[]args){int[]bo... package Homework.Demo;public class Homework04 { public static void main(String[] args) { int[] book1 = {123, 156, 187}; int[] book2 = {145, 154, 199, 201}; int[] book = new int[7]; for (int i = 0; i <7 ; i++) { if (i<=2) { book[i] = book1[i]; }else { book[i]=book2[i-3]; } } int temp=0; for (int c = 0; c <7 ; c++) { if (book[c]<book[c++]) { continue; }else{ book[c]=temp; book[c++]=temp; temp=book[c]; } System.out.print("房号"+book[c]); System.out.println("最中间的房号"+book[(book.length-1)/2]); } }} 展开
 我来答
匿名用户
2019-10-07
展开全部
你这个下标越界是因为你最后一个循环里面有c++但是你循环最后一个角标是6,++成7所以越界,其次book[c]=temp; book[c++]=temp; temp=book[c];你这三条转换的不觉得有点奇怪吗 book[c]<book[c++]还有if里的这个判断 后面的c++是先++了在用角标去拿值了还是先拿值了再去运行++
百度网友bec66c6
2019-10-07 · TA获得超过1008个赞
知道小有建树答主
回答量:3930
采纳率:48%
帮助的人:312万
展开全部
从高到低遍历是i--吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式