争渡鸟 2022-03-19 12:21 采纳率: 57.1%
浏览 21
已结题

题很简单,生成25个1到100之间的随机数,打印它们,并在相邻的两个数字之间打印 > 、 < 、 =。 比如 11 > 2 < 5 < 90 > 89 > 17 ...

现在遇到的问题是报错,这个错误该怎修改?

//我写的代码如下
import java.util.*;
public class A{
    public static void main(String[] args){ 
        Random rand=new Random();
        int []a=new int[25];
        for (int i=0;i<a.length ;i++ ) {
            int r=rand.nextInt(100)+1;
                a[i]=r;
        }
        String s="";
        String x="";
        for (int i=0;i<25 ;i++ ) {
            
            if (a[i]>a[i+1]) {
                s=s+">"+a[i+1];
            }
            if (a[i]<a[i+1]) {
                s=s+"<"+a[i+1];
            }
            if (a[i]==a[i+1]) {
                s=s+"="+a[i+1];
            }
            x=s;
            System.out.println(a[0]+x);
        }
    }
}

问题遇到的现象和发生背景
问题相关代码,请勿粘贴截图
运行结果及报错内容

8<50
8<50>40
8<50>40<70
8<50>40<70>42
8<50>40<70>42<81
8<50>40<70>42<81>61
8<50>40<70>42<81>61>24
8<50>40<70>42<81>61>24<76
8<50>40<70>42<81>61>24<76>3
8<50>40<70>42<81>61>24<76>3<100
8<50>40<70>42<81>61>24<76>3<100>5
8<50>40<70>42<81>61>24<76>3<100>5<27
8<50>40<70>42<81>61>24<76>3<100>5<27<81
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56=56
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56=56<57
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56=56<57<70
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56=56<57<70>54
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56=56<57<70>54<83
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56=56<57<70>54<83>40
8<50>40<70>42<81>61>24<76>3<100>5<27<81>36<92>64>56=56<57<70>54<83>40>14
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 25
at A.main(A.java:14)

输出完成 (耗时 0 秒) - 正常终止

我的解答思路和尝试过的方法
我想要达到的结果
  • 写回答

2条回答 默认 最新

  • Code_流苏 C/C++领域优质创作者 2022-03-19 12:33
    关注

    img

    这里的a[i+1]会访问到a[25] 但是数组开辟空间只开到a[24],没a[25],造成了越界访问


    简单来说就是:数组所创建的范围已经超过使用的范围了——越界了

    希望对题主有所帮助!可以的话,帮忙点个采纳!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月27日
  • 已采纳回答 3月19日
  • 创建了问题 3月19日

悬赏问题

  • ¥20 @microsoft/fetch-event-source 流式响应问题
  • ¥15 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False