莲花楼楼主


私信TA

用户名:dotcpp0719623

访问量:613

签 名:

总有人间一两风,填我十万八千梦

等  级
排  名 2134
经  验 2367
参赛次数 0
文章发表 31
年  龄 0
在职情况 学生
学  校
专  业

  自我简介:

有人在通往牛逼的路上一路狂奔

解题思路:

注意事项:

参考代码:

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNextLine()) {
        	int n=scanner.nextInt();
        	if(n==0) {
        		break;
        	}
        	int[][] arr=new int[n][2];//第一列为数字的绝对值,第二列为正负的标志,-1为负,1为正,最后输出时,每行两个数字相乘即可
        	for(int i=0;i<n;i++) {
        		int temp=scanner.nextInt();
        		if(temp<0) {//负数
        			arr[i][1]=-1;
        		}else {//正数
        			arr[i][1]=1;
        		}
        		arr[i][0]=Math.abs(temp);
        	}
        	Arrays.sort(arr,Comparator.comparingInt(a -> a[0]));//按二维数组的第一列从小到大进行定制排序
        	for(int i=n-1;i>=0;i--) {
        		System.out.print(arr[i][0]*arr[i][1] + " ");
        	}
        	System.out.println();
        	scanner.nextLine();
        }
    }    
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区