一维数组学习与代码整合

package array;

import java.util.Scanner;
//一维数组基本功能与代码大全
public class ArrayManager {
    public static void main(String[] args) {
        Scanner myScanner = new Scanner(System.in);

        // 让用户自定义初始化数组
        int[] arr = initializeArray(myScanner);

        while (true) {
            // 显示菜单
            System.out.println("===== 数组管理系统 =====");
            System.out.print("1. 添加元素");
            System.out.print(" 2. 删除元素");
            System.out.println(" 3. 查找元素");
            System.out.print("4. 修改元素");
            System.out.print(" 5. 显示数组");
            System.out.println(" 6. 数组翻转");
            System.out.print("7. 数组扩容");
            System.out.println("8. 退出");
            System.out.print("请选择操作(1-8):");

            int choice = myScanner.nextInt();

            switch (choice) {
                case 1:
                    // 添加元素
                    arr = addElement(arr, myScanner);
                    break;
                case 2:
                    // 删除元素
                    arr = removeElement(arr, myScanner);
                    break;
                case 3:
                    // 查找元素
                    findElement(arr, myScanner);
                    break;
                case 4:
                    // 修改元素
                    modifyElement(arr, myScanner);
                    break;
                case 5:
                    // 显示数组
                    displayArray(arr);
                    break;
                case 6:
                    // 数组翻转
                    reverseArray(arr);
                    break;
                case 7:
                    // 数组扩容
                    arr = expandArray(arr, myScanner);
                    break;
                case 8:
                    // 退出
                    myScanner.close();
                    System.out.println("退出系统。");
                    return;
                default:
                    System.out.println("无效选择,请重新输入!");
            }
        }
    }

    // 用户自定义初始化数组的方法
    public static int[] initializeArray(Scanner scanner) {
        System.out.print("请输入数组的长度:");
        int length = scanner.nextInt();
        
        if (length <= 0) {
            System.out.println("无效的数组长度!");
            return new int[0]; // 返回一个空数组
        }

        int[] arr = new int[length];
        for (int i = 0; i < length; i++) {
            System.out.print("请输入第 " + (i + 1) + " 个元素:");
            arr[i] = scanner.nextInt();
        }

        System.out.println("数组初始化成功!");
        return arr;
    }

    // 添加元素的方法
    public static int[] addElement(int[] arr, Scanner scanner) {
        System.out.println("请输入你要添加的元素:");
        int add = scanner.nextInt();

        // 创建一个新的数组,比原来数组长度多一
        int arrNew[] = new int[arr.length + 1];
        
        // 将原数组的元素复制到新数组
        for (int i = 0; i < arr.length; i++) {
            arrNew[i] = arr[i];
        }

        // 在新数组的最后一个位置添加新元素
        arrNew[arr.length] = add;

        System.out.println("元素添加成功!");
        return arrNew;
    }

    // 删除元素的方法
    public static int[] removeElement(int[] arr, Scanner scanner) {
        System.out.println("请输入你要删除的元素的下标:");
        int index = scanner.nextInt();

        if (index < 0 || index >= arr.length) {
            System.out.println("无效的下标!");
            return arr;
        }

        // 创建一个新的数组,比原来数组长度少一
        int arrNew[] = new int[arr.length - 1];

        // 将原数组的元素复制到新数组,跳过要删除的元素
        for (int i = 0, j = 0; i < arr.length; i++) {
            if (i != index) {
                arrNew[j++] = arr[i];
            }
        }

        System.out.println("元素删除成功!");
        return arrNew;
    }

    // 查找元素的方法
    public static void findElement(int[] arr, Scanner scanner) {
        System.out.println("请输入你要查找的元素:");
        int element = scanner.nextInt();

        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == element) {
                System.out.println("元素 " + element + " 在数组中的下标为:" + i);
                return;
            }
        }

        System.out.println("元素未找到!");
    }

    // 修改元素的方法
    public static void modifyElement(int[] arr, Scanner scanner) {
        System.out.println("请输入你要修改的元素的下标:");
        int index = scanner.nextInt();

        if (index < 0 || index >= arr.length) {
            System.out.println("无效的下标!");
            return;
        }

        System.out.println("请输入新的元素值:");
        int newValue = scanner.nextInt();

        arr[index] = newValue;
        System.out.println("元素修改成功!");
    }

    // 显示数组的方法
    public static void displayArray(int[] arr) {
        System.out.println("当前数组元素为:");
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + "\t");
        }
        System.out.println();
    }

    // 数组翻转的方法
    public static void reverseArray(int[] arr) {
        int start = 0;
        int end = arr.length - 1;
        while (start < end) {
            int temp = arr[start];
            arr[start] = arr[end];
            arr[end] = temp;
            start++;
            end--;
        }
        System.out.println("数组翻转完成!");
    }

    // 数组扩容的方法
    public static int[] expandArray(int[] arr, Scanner scanner) {
        System.out.println("请输入扩容后的数组长度:");
        int newLength = scanner.nextInt();

        if (newLength <= arr.length) {
            System.out.println("新数组长度必须大于当前数组长度!");
            return arr;
        }

        int[] arrNew = new int[newLength];
        for (int i = 0; i < arr.length; i++) {
            arrNew[i] = arr[i];
        }

        System.out.println("数组扩容成功!");
        return arrNew;
    }
}

新增功能说明00:

  1. 添加元素:调用 addElement 方法,用户输入新元素,新数组比原数组长度多一,并将新元素添加到最后。
  2. 删除元素:调用 removeElement 方法,用户输入要删除元素的下标,新数组比原数组长度少一,并跳过要删除的元素。
  3. 查找元素:调用 findElement 方法,用户输入要查找的元素,程序遍历数组并输出该元素的下标。
  4. 修改元素:调用 modifyElement 方法,用户输入要修改元素的下标和新值,程序修改指定位置的元素。
  5. 显示数组:调用 displayArray 方法,输出当前数组的所有元素。
  6. 退出系统:选择退出选项,结束程序运行。

通过这些扩展功能,程序变得更加实用和多样化,可以满足用户对数组操作的各种需求。

新增功能说明01:

  1. 初始化数组initializeArray 方法让用户输入数组的长度和每个元素的值,从而创建和初始化数组。
  2. 完整的功能菜单:包括添加、删除、查找、修改和显示数组,以及退出系统。

这样,用户在运行程序时可以自定义数组的初始内容,使程序更加灵活和实用。

新增功能说明02:

  1. 数组翻转reverseArray 方法通过交换数组前后对应的元素来实现数组的翻转。
  2. 数组扩容expandArray 方法让用户输入新的数组长度,并创建一个新数组,将原数组的元素复制到新数组中。

这两个新功能使得数组管理系统更加全面和实用。用户可以翻转数组中的元素顺序,也可以根据需要增加数组的容量。

注:AI书写,以供学习

  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下代码实现: ```python n = int(input("请输入整数个数:")) arr = [] for i in range(n): num = int(input("请输入第{}个整数:".format(i+1))) arr.append(num) print("原数组:", arr) # 将数组元素逆序输出 arr.reverse() print("逆序输出:", arr) ``` 首先,从键盘输入整数个数n,并创建一个空数组arr。然后,使用for循环逐个输入n个整数,并将它们添加到数组中。接着,输出原数组arr。最后,使用reverse()方法将数组元素逆序输出。 ### 回答2: 这道题目需要用到一个数组来存储输入的n个整数,然后将数组元素逆序输出。 首先,我们需要声明一个数组来存储输入的n个整数,比如:int a[n]。这个数组可以存储n个整数,其中a[0]代表第一个整数,a[1]代表第二个整数,以此类推。 接下来,我们需要从键盘输入这n个整数,并且存储到数组中。可以用for循环来实现这个功能,例如: for(int i=0;i<n;i++){ cin>>a[i]; } 这段代码可以让我们从键盘输入n个整数,并将它们存储到数组a中。 最后,我们需要将数组元素的值逆序输出。可以用一个for循环来实现这个功能,例如: for(int i=n-1;i>=0;i--){ cout<<a[i]<<" "; } 这段代码可以让我们将数组a中的元素逆序输出,也就是从最后一个元素开始输出到第一个元素。 以上就是整道题目的解法,我们可以把这些代码整合起来,形成一个完整的程序。完整代码如下: ### 回答3: 这个问题可以用多种编程语言来解决,例如C++、Java、Python等。下面以C++为例,给出一个解决方法。 首先,需要定义一个一维数组,并且从键盘输入n个整数存入数组中。这可以通过如下代码实现: ``` #include <iostream> using namespace std; int main() { int n; cout << "请输入数组长度n:" << endl; cin >> n; int arr[n]; cout << "请输入" << n << "个整数:" << endl; for (int i = 0; i < n; i++) { cin >> arr[i]; } // TODO: 将数组元素逆序输出 return 0; } ``` 在上面的代码中,首先提示用户输入数组长度n,然后定义一个长度为n的数组arr,在循环中从键盘输入n个整数,并存储到数组arr中。 接下来需要将数组元素逆序输出。这可以通过交换数组元素的位置来实现。具体做法是,使用两个指针left和right分别指向数组的首尾元素,然后交换它们的值,继续移动指针直到left>=right为止。代码如下: ``` #include <iostream> using namespace std; int main() { int n; cout << "请输入数组长度n:" << endl; cin >> n; int arr[n]; cout << "请输入" << n << "个整数:" << endl; for (int i = 0; i < n; i++) { cin >> arr[i]; } int left = 0, right = n - 1; while (left < right) { int temp = arr[left]; arr[left] = arr[right]; arr[right] = temp; left++; right--; } cout << "逆序输出的数组:" << endl; for (int i = 0; i < n; i++) { cout << arr[i] << " "; } cout << endl; return 0; } ``` 在上面的代码中,首先定义了两个指针left和right,初始值分别为0和n-1,表示数组的首尾元素。然后在while循环中,将left指向的元素和right指向的元素交换位置,然后继续移动指针,直到left>=right为止。最后,在循环外部,使用for循环依次输出数组中的元素。 通过上面的代码,就可以实现从键盘输入n个整数存入一维数组中,然后将数组元素的值逆序输出的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值