算法第二题

第二个来了

数字逆序输出
题目描述
输入10个数字,然后逆序输出。
输入
十个整数
输出
逆序输出,空格分开

开始写的代码

package src;

import java.util.Scanner;

public class tow01 {
    public static void main(String[] args) {

        System.out.println("请输入10个整数:");
        Scanner sc = new Scanner(System.in);
            int[] arr = new int[10];
            for (int i = arr.length-1; i < 10; i--) {
                int a = sc.nextInt();
                arr[i - 1] = a;
            }

            for (int temp:arr) {
                System.out.print(temp);
                System.out.print(" ");
            }
    }

}

出现了问题,会发现一直循环输入,无法输出,而且在写的过程中出现了数组越界的问题。经过大神的指导,我发现了错误的原因,居然是for循环的时候忘了考虑 i < 0的情况,我裂开了,,,arr[i - 1] = a;还有这一个应该是arr[i] = a;,定义的数组是10个内存空间,最后一位的索引是9,for (int i = arr.length-1; i < 10; i--)在for循环的时候已经减过1了,后面就不需要了。

修改后的代码

package src;

import java.util.Scanner;

public class tow02 {
    public static void main(String[] args) {
        System.out.println("请输入10个整数:");
        Scanner sc = new Scanner(System.in);
        int[] arr = new int[10];
        for (int i = arr.length-1;0 <= i; i--) {
            int a = sc.nextInt();
            arr[i] = a;
        }

        for (int temp:arr) {
            System.out.print(temp);
            System.out.print(" ");
        }
    }

}

运行结果

在这里插入图片描述

补充:

1.数组:
若干个相同数据类型的元素按一定顺序排列的集合

2.数组特点

  1. 数组是 相同数据类型元素的集合
  2. 数组中的各个元素是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起
  3. 数组元素用整个数组的名字和它自己在数组中的顺序位置来表示

3.索引数组
索引数组存储一系列经过组织的单个或多个值,其中的每个值都可以通过使用一个无符号整数进行访问,第一个索引始终是数字0,且添加到数组中的每个后续元素的索引以1为增量递增。另外,数组中的元素索引指的是数组的下标。

4.i++与++i的区别
通俗点来说就是i++是先赋值后加一;++i是先加一后赋值。

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值