很久没写杭电的了,这个主要是练习自己的思维哦,真的很重要。今天是绝对值排序。
后来,突然想到负负得正,醉啦,数学学得真是渣渣。不说了,贴代码,很简单的哦。
这个题目我一开始的想法是输入,然后冒泡排序的时候就比较大小,如果这个数小于0,那么久可以乘以-1,之后if判断大小后再除以-1。这个其实有错误的,因为换完值,如果是一个负数一个正数,那么之后正数变为负数了,负数却没有变回来。
import java.util.Scanner;
class Main{
public static void main(String args[]){
Scanner sc=new Scanner(System.in);
while(sc.hasNext()){
int n=sc.nextInt();
if(n==0){
return;
}else{
int a[]=new int[n];
for(int i=0;i
a[i]=sc.nextInt();
}
for(int i=0;i
for(int j=i+1;j
boolean f=false;
boolean s=false;
//if(a[i]<0){ a[i]*=-1;f=true;}
//if(a[j]<0) {a[j]*=-1;s=true;}
int temp;
if(a[i]*a[i]
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
//if(f){a[i]/=-1;f=false;}
//if(s){a[j]/=-1;s=false;}
}
}
for(int i=0;i
System.out.print(a[i]+" ");
}
System.out.println(a[n-1]);
}
}
}
}
这里面 注释的就是我之前的那种想法,不好的,负负得正多简单,果然要多想哦。睡觉啦!