poj 2218

题意: N个人减肥,给出他们的起始体重和减肥的天数,而且每天能减去一磅的体重。要求按减肥者减肥过后的体重降序排列姓名。
 
输入:姓名     减肥天数    起始体重
输出:降序输出姓名
 
此题原想用C++写,但因不太了解C++字符串操作的基本方法(strcmp()),无法实现部分功能,所以改用JAVA。创建一个类存放减肥者的信息(姓名,减肥后的体重),根据计算得出的weight对对象数组排序。要注意要求每组数据输出后保留一行空格。
 
代码:
 
import java.util.* ;
 class People{
 String name ;
 int weigth ;
}
public class Main{
 public static void main(String args[])throws Exception{
  
  Scanner sc = new Scanner(System.in) ;
  People p[] = new People[10000] ;
  for(int i=0; i<10000; i++)
   p[i] = new People() ;
  int x = 0;
  while(sc.hasNext()){
   x = 0 ;
   String s = sc.next() ;
   p[x].name = sc.next() ;
   while(!p[x].name.equals("END")){
    int a = sc.nextInt() ;
    int b = sc.nextInt() ;
    p[x].weigth = a - b ;
    x ++ ;
    p[x].name = sc.next() ;
   }
   for(int i=1;i<x;i++){
    for(int j=0;j<i;j++){
     if(p[i].weigth < p[j].weigth){
      People n = p[i] ;
      p[i] = p[j] ;
      p[j] = n ;
     }
    }
   }
   for(int i=0; i<x; ++i)
    System.out.println(p[i].name) ;
   System.out.println() ;
  }
 }
}
原文地址:https://www.cnblogs.com/xiaolongchase/p/2137819.html