数组赋值帮助

问题描述 投票:0回答:6

Java 任务是提示用户输入存储在数组中的十个整数,调用传递数组的方法,该方法将以原始顺序和逆序显示值。

公共课模块7 {

public static void main(String[] args) {

// prompt the user
System.out.println("Welcome to **yourNameHere**\'s 3 in 1 Programming Assignment (Arrays) for Module 7\n");

// create Scanner Object
Scanner input = new Scanner(System.in);

// loop until break
while(true){

    // new lines for readability
    System.out.print("\n");

    // Prompt user for choices
    System.out.print("\nEnter 1 Random Array \nEnter 2 Reverse Numbers\nEnter 3 Identical Arrays\nAny other input will exit");
    int choice = input.nextInt();
    // Consume newline left-over
    input.nextLine();

    // first feature
    if(choice == 1){
        System.out.println("You Selected Random Array");

        // call the method of feature 1
        feature1();

    }
    else if(choice == 2){

        // Prompt user
        System.out.println("You Selected Reverse Numbers\n");

        feature2();

    }
    else if(choice == 3){

        // Prompt user
        System.out.println("You Selected Identical Arrays !");
        // call the method of feature 3 providing the message, return value is the Letters message
        feature3();

    }
    else{

        // not 1 , 2 or 3
        System.out.println("User didn't select 1,2 or 3. Exiting Program\n");

        // release object
        input.close();

        // exit while with break statement
        break;
    }
} // end of while

} // 结束主

// 在这里创建 feature1() 方法 这里没有问题,这个可以工作

私有静态无效feature1(){

        int[] randomArray = new int[100];
        for (int i = 0; i< randomArray.length; i++)
            randomArray[i] = (int) (Math.random()*100);



        for (int i=0; i<randomArray.length; i++) {
            double currentMin = randomArray[i];
            int currentMinIndex = i;


            //not needed for just sorting
            for (int j=i+1; j<randomArray.length;j++) {
                if (currentMin > randomArray[j]) {
                    currentMin = randomArray[j];
                    currentMinIndex = j;
                }
            }

            //swap list[i] with list[currentMinIndex] if necessary
            if (currentMinIndex !=i) {
                randomArray[currentMinIndex] = randomArray[i];
                randomArray[i] = (int) currentMin;
            }
        }

        for (int i=0; i<randomArray.length; i++) {
              // print randomArray values
              if (i % 10 == 0 && i > 0) {
                  System.out.println();

            }
              System.out.print(randomArray[i] + " ");



            }

    }

//在此处创建 feature2() 方法 我似乎无法让它看起来像此处的示例。我无法让数字能够一次输入一个并在数字之间留一个空格,然后将它们反向显示。仅当您连续输入所有 10 个数字且不带空格时才有效。

私有静态无效feature2(){

        System.out.print("Please enter 10 numbers ");
        java.util.Scanner input = new java.util.Scanner(System.in);
        double[] numbers = new double[10];

        System.out.print("\nEntered: ");
        for (int i = 0; i < numbers.length; i++) {

        int number = input.nextInt();
        System.out.print("Reversed: ");
        reverse(number);
        }
    }
    public static void reverse(int number) {
        while (number !=0) {
            int remainder = number % 10;
            System.out.print(remainder + " ");
            number = number/10;
        }


    }

//在这里创建feature3()。 这就是我的主要问题所在。我对数组很糟糕,甚至不知道从哪里开始

 private static void feature3()

`Java 任务是提示用户输入存储在数组中的 10 个整数,调用传递数组的方法,该方法将以原始顺序和逆序显示值。

我已经尝试了所有我知道的方法(从阅读我的课本和观看讲座视频......),但我不知道如何编写这段代码。我的输出应该如下所示:

Output sample

(编辑)抱歉,我一回到家用电脑就会发布我所拥有的内容......顺便说一句,这是作业。我对数组和理解它们很糟糕。有没有一个网站教“傻瓜数组”?

java arrays reverse
6个回答
1
投票

假设您已经将所有用户输入值存储在数组中,您将需要创建两个 for 循环;一个从数组的开头迭代到结尾,另一个从数组的结尾迭代到开头。

for(int i = 0; i < array.length(); ++i) {
   System.out.print(array[i]); //or put that in a string to output later
}


for (int j = array.length() - 1; j >= 0; ++j) {
   System.out.print(array[j]); //or, again, put it in a string
}

要知道 Java 中的数组从索引 0 开始,到索引等于给定数组的长度减 1 结束,这就是为什么倒计时循环从这里开始和结束的原因。

希望能够解决部分问题!


1
投票

试试这个..

class Assignment{

private Integer[] reverse(Integer[] passtheArray){

//Use Your own logic Whatever you Want to implement and return Your array.
 return null;
}
public static void main(String[] args){
Integer abc[] = new Integer[] {10, 15, 20, 25, 30};
Assignment obj = new Assignment();
obj.reverse(abc);
}
}

1
投票

由于您没有提供任何代码,我认为您在该项目上还没有取得很大进展。看一下数组的循环。

对于一个简单的解决方案,您可以通过将数组设置为

来向后循环数组
ArrayUtils.reverse(int[] array)

但是,我建议您研究一下如何使用 for 循环反转数组,因为您似乎还没有掌握它们。

如果您发布一些示例代码,那么我们可以为您提供一些更直接的提示。


1
投票

这是一种方法

公开课交换号码{

    public static void main(String[] args)

    {

         Scanner s = new Scanner(System.in);
         System.out.print("Enter number of elements you want in array:");
        int n = s.nextInt();
         int a[] = new int[n];
         System.out.println("Enter all the elements:");
         for (int i = 0; i < n; i++) 
         {
             a[i] = s.nextInt();
         }



        swapNumber(a);

    }

    private static void swapNumber(int a[]) {

        System.out.println("Original array" + Arrays.toString(a));
        for(int i = 0; i < a.length / 2; i++)
        {
            int temp = a[i];
            a[i] = a[a.length - i - 1];
            a[a.length - i - 1] = temp;
        }

        System.out.println("Reversed array" + Arrays.toString(a));
    }
}

0
投票

用这个,如何反转数组之前已经提到过这里

ArrayUtils.reverse(int[] array)

-3
投票

数组是一种数据结构,可以在单个变量中保存相同数据类型的多个值。数组中的每个值称为一个元素,元素通常通过其索引进行访问,索引是数组中的数字位置。数组很有用,因为它们允许您有效地存储和管理大量数据。

在许多编程语言中,数组可以具有固定大小或动态大小。固定大小数组具有预定数量的元素,创建后无法更改,而动态大小数组可以在分配帮助的程序执行期间根据需要增大或缩小。

现在,让我们深入研究向数组添加元素。要将元素添加到数组中,您需要执行以下步骤:

声明数组:首先声明特定数据类型的数组。例如,在 Python 中,您可以使用列表声明动态数组,而在 C++ 中,您可以使用 STL(标准模板库)中的动态数组。

初始化数组:您可以使用默认值初始化数组,也可以将其留空,具体取决于您的需要。

添加元素:要将元素添加到数组,您可以使用各种方法,例如数组索引、数组追加函数或您正在使用的编程语言提供的特定于数组的方法。

调整数组大小(如果需要):在动态数组中,如果数组已满,您可能需要调整数组大小。这涉及创建一个更大的新数组并将元素从旧数组复制到新数组。

© www.soinside.com 2019 - 2024. All rights reserved.