【问题标题】:Question regarding value assigned for an integer关于为整数赋值的问题
【发布时间】:2023-03-25 17:55:01
【问题描述】:

代码没有问题,而是逻辑问题

我想知道为什么在反转的数组代码块中n的值被认为是5而不是7?我认为该值是 7 而不是 5。据我了解,n 值来自 (1+2+3+4+5)/2 表示 7.5 但在第一个 for 循环中取为 7 那么为什么取为 5在第二个循环中?

public static void main(String[] args) {

    int[] arr = {1, 2, 3, 4, 5};
    reverse(arr, arr.length);

}

public static void reverse(int[] a, int n) {
    int i, k, temp;//threee int variable is created
    for (i = 0; i < n / 2; i++) // n value is 15/2= 7.5  here
        { temp = a[i];        
        a[i] = a[n - i - 1]; 
        a[n - i - 1] = temp;
                                
    }

    /*printing the reversed array*/
    System.out.println("Reversed array is: ");
    for (k = 0; k < n; k++) // why the n value considered as 5 here? 
       { System.out.print(a[k] + " ");

    }
}

【问题讨论】:

  • N 是数组长度不是总和

标签: java arrays methods


【解决方案1】:

n 是 arr.length 为 5,因为 arr 有 5 个元素。

【讨论】:

  • 感谢您的回复,您能告诉我两次快速forloop中n的值是多少吗?
  • 在反向 for 循环中,n 为 5,i 定义为 int,因此结果为 5/2 = 2
【解决方案2】:

我想你想知道数组的长度是多少。

int[] arr = {1, 2, 3, 4, 5};

这个 arr.length 是 5,因为它有 5 个项目。我们将项目数视为数组中的长度。如果你认为数组长度为 1+2+3+4+5 = 15 那就错了。

【讨论】:

    猜你喜欢
    • 2022-01-06
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多