题意: N个人减肥,给出他们的起始体重和减肥的天数,而且每天能减去一磅的体重。要求按减肥者减肥过后的体重降序排列姓名。
输入:姓名 减肥天数 起始体重
输出:降序输出姓名
此题原想用C++写,但因不太了解C++字符串操作的基本方法(strcmp()),无法实现部分功能,所以改用JAVA。创建一个类存放减肥者的信息(姓名,减肥后的体重),根据计算得出的weight对对象数组排序。要注意要求每组数据输出后保留一行空格。
代码:
import java.util.* ;
class People{
String name ;
int weigth ;
}
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() ;
}
}
}
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() ;
}
}
}