【发布时间】:2019-01-19 15:19:17
【问题描述】:
我正在尝试解决我在使用此代码时遇到的两个问题。首先,我想将我的整数输入设置为最大值 100,其次我试图获取输入的整数数组并按绝对值对它们进行排序。所以如果用户使用这个程序,我希望他们只能输入 99 来表示他们想要排序的整数个数。当它最终被排序而不是降序或升序时,我希望它是这样的; -1,2,-6,10,-20。
public static void main(String args[])
{
int n, i, j, temp;
int arr[] = new int[50];
Scanner scan = new Scanner(System.in);
//Input area for user data, setting the number of integers to sort
System.out.print("Enter Total Number of Integers you would like to sort : ");
n = scan.nextInt();
for (n=0, n < 100, n++)
{
}
//Input area for user data, asking user to input the ints into an array for sorting
System.out.print("Enter " +n+ " Numbers : ");
for(i=0; i<n; i++)
{
arr[i] = scan.nextInt();
}
// Sorting Array using Bubble Sort Technique
for(i=0; i<(n-1); i++)
{
for(j=0; j<(n-i-1); j++)
{
if(arr[j] > arr[j+1])
{
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
// Command line output from user, sorted by absolute value
System.out.print("Sorted List : \n");
for(i=0; i<n; i++)
{
System.out.print(java.lang.Math.abs(arr[i])+ " ");
}
}
}
【问题讨论】:
-
有错误吗?
-
你没有问任何问题。
-
我问我如何限制用户在初始组中输入 99 或更小的整数进入我的数组的能力。以及如何确保列表被排序为由绝对值形成的列表,而不是降序或升序。
-
正如代码所示,没有没有错误,但我有两个问题需要帮助,因为我不知道该怎么做。我尝试使用 java.lang.Math.abs() 作为我的绝对值,但它似乎没有按预期工作。
-
好吧,你需要添加代码来做到这一点:读取整数,检查它是否小于 100,如果不是,打印一个错误,再问一次。我相信你已经学会了循环和 if。使用它们。我也相信你知道什么是绝对值。因此,与其比较数字,不如比较它们的绝对值。尝试一些东西。我们不会做你的功课。告诉我们您在没有发布代码的情况下尝试了某些东西,并告诉我们“它似乎没有按预期工作”太含糊了。
标签: java arrays multidimensional-array bubble-sort