问题描述
- 怎样可先输入多组数据最后出结果
-
import java.util.Arrays;
import java.util.Scanner;public class Main {
public static void main(String[] args) {Scanner s = new Scanner(System.in); int n,a=101; int t; for (int l = 0; l < a; l++) { n = s.nextInt(); int[] x = new int[n]; if(n!=0){ for (int i = 0; i < n; i++) { x[i]=s.nextInt(); } }else{ break; } for(int i = 0;i<x.length-1;i++){ for(int j=i+1;j<x.length;j++){ if (Math.abs(x[i])>Math.abs(x[j])){ t = x[i]; x[i] = x[j]; x[j] = t; } } } for (int i = x.length-1; i >=0 ; i--) { System.out.print(x[i]+" "); } System.out.println(); } }
}
解决方案
不知道你的程序要做什么。如果要输入多组数据,最好还是从文件读取。因为用户输入一旦输错了,就很难修改,而且每次都要重新输入。
解决方案二:
这种是一次输入比较好点,按字符串,这样比较易操作一些
public static void main(String[] argv) {
Scanner s = new Scanner(System.in);
// int n,a=101;
// int t;
// for (int l = 0; l < a; l++) {
// n = s.nextInt();
// int[] x = new int[n];
//
// if(n!=0){
// for (int i = 0; i < n; i++) {
// x[i]=s.nextInt();
// }
// }else{
// break;
// }
System.out.print("请输入数字,以逗号隔开,如 1,2,3,4,5 按回车结束");
String n = s.next();
String t;
String x[] = n.split(",");
for(int i = 0;i<x.length-1;i++){
for(int j=i+1;j<x.length;j++){
if (Math.abs(Integer.valueOf(x[i]))>Math.abs(Integer.valueOf(x[j]))){
t = x[i];
x[i] = x[j];
x[j] = t;
}
}
}
for (int i = x.length-1; i >=0 ; i--) {
System.out.print(x[i]+" ");
}
System.out.println();
}
时间: 2024-11-05 21:23:49