因此,在运行该程序之前,我看不到任何错误。基本上,这是一个数组程序,用户可以在其中输入10个数字。一旦用户输入了数组的数量,它便会弹出一个GUI,提示您输入一个10的数组。它只能让您输入一次,并且只重复用户输入10次的相同数字。这一切都被抬高了,我只做了几个星期而轮班12小时,这无济于事。如果有人能指出我正确的方向,那就太好了!
package Array;
import javax.swing.JOptionPane;
public class Array {
public static void main(String[] args) {
String response;
response = JOptionPane.showInputDialog("Enter the numbers : ");
int n = Integer.parseInt(response);
int[] a=new int[n];
int i,j,temp=0;
JOptionPane.showInputDialog("Enter "+n+" Array Elements : ");
for(i=0;i<n;i++){
a[i]=Integer.parseInt(response);
}
JOptionPane.showMessageDialog(null,"\nArray Elements Are : ");
for(i=0;i<n;i++) {
JOptionPane.showMessageDialog(null," "+a[i]);
}
for(i=0;i<n;i++) {
for(j=i+1;j<n;j++) {
if(a[i]<a[j]) {
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
JOptionPane.showMessageDialog(null,"\nArray Elements in Descending Order : ");
for(i=0;i<n;i++) {
JOptionPane.showMessageDialog(null," "+a[i]);
}
}
}
答案 0 :(得分:0)
核心问题是,您只是不要求用户为数组中的每个元素输入值,而只是解析最后一个response
,即数组中元素的数量。
我剥离了您的解决方案并删除了JOptionPane
,因为它可能不是解决当前问题的最佳解决方案。但是,用Scanner
代替JOptionPane
并不需要花费太多,因为它们通常在做相同的事情
Scanner input = new Scanner(System.in);
System.out.print("Number of elements: ");
String response = input.nextLine();
int numberOfElements = Integer.parseInt(response);
int[] values = new int[numberOfElements];
for (int index = 0; index < numberOfElements; index++) {
System.out.print("Element " + index + ": ");
response = input.nextLine();
int value = Integer.parseInt(response);
values[index] = value;
}
for (int i = 0; i < numberOfElements; i++) {
for (int j = i + 1; j < numberOfElements; j++) {
if (values[i] < values[j]) {
int temp = values[i];
values[i] = values[j];
values[j] = temp;
}
}
}
System.out.println("Sorted:");
for (int index = 0; index < numberOfElements; index++) {
System.out.println(values[index]);
}