我对此非常陌生,而且我很难完成任务,所以任何人都可以帮忙。我在排序输出时遇到问题。这是代码。
import java.util.Scanner;
public class CJPSA5 {
public static void main(String args[]){
Scanner in= new Scanner(System.in);
int num;
int m;
int r;
System.out.print("Please Enter your Number: ");
num = in.nextInt();
if (num <= 0) {
System.out.println("Not Accepted!");
} else {
System.out.println("The Factor of "+ num + " " + "are:");
for (m = 1; m <= num; m++) {
if (num % m == 0) {
System.out.print(m + "\t");
System.out.print(j + "\t");
}
}
}
}
}
}
System.out.println();
System.out.println("Thank You!");
}
}
预期输出是这样的。
Please Enter your Number: 24
The Factor of 24 are:
1 -1 2 -2 3 -3 4 -4 6 -6 8 -8 12 -12 24 -24
现在我想要的输出是按
排序1 2 3 4 6 8 12 24 -1 -2 -3 -4 -6 -8 -12 -24
我真的希望有人可以帮助我,并为我错误的语法表示抱歉。
答案 0 :(得分:1)
您可以将值存储在java中的数组或arraylist中。并使用排序方法。
你可以像Tapan Anand那样建议,不需要使用排序。
答案 1 :(得分:1)
首先,您的代码有很多编译错误。
无需对数组进行排序。只将积极因素存储在数组中。
您的数组将按照您运行循环的方式自行排序。只需第二次循环遍历每个数字的数组打印负片,即可打印负面因素。
例如:
输入:14
数组已1 2 7 14
,现在也已打印这些值。
然后循环浏览并打印:-1 -2 -7 -14
答案 2 :(得分:1)
首先在列表中收集您的解决方案:
在顶部:
List<Integer> factors = new ArrayList<Integer>();
然后在循环中:
if (num % m == 0)
factors.add(m);
然后循环:
Collections.sort(factors);
然后打印:
for (int factor : factors) {
System.out.println(factor + "\t"); /// or whatever