编写一个Java程序,提示用户输入学生数量,学生姓名和他们的成绩,并按照成绩的降序打印学生姓名

importjava.util.Scanner;publicclassmyclass{publicstaticvoidmain(String[]args){Scanner... import java.util.Scanner;
public class myclass
{
public static void main(String[] args)
{
Scanner input = new Scanner (System.in);
System.out.print("请输入学生个数,学生姓名以及学生成绩");
int number = input.nextInt();
String name = input.next();
double grade = input.nextDouble();
double[] mylist = new double[number];
String[] list = new String[ number];
for( int i = 0;i<number-1;i++)
{
mylist[i] = grade;
double max = mylist[i];
int maxindex = i ;
for(int j=i+1;j<number;j++)
{
if(mylist[j]>max)
{max = mylist[j];
maxindex = j;}

if(maxindex!= i)
{
mylist[maxindex] = mylist[i];
mylist[i] = max ;
}
}
for( i = 0; i< number;i++)
{
list[i] = name ;

}
System.out.println(mylist[i]);
System.out.println(list[i]);

}

}
}
求大神指导哪里有问题啊。。。
展开
 我来答
百度网友fccc900
2013-10-25 · 超过14用户采纳过TA的回答
知道答主
回答量:54
采纳率:0%
帮助的人:12.4万
展开全部
你的程序,错误太多了。
1)你name和grade只能保存最后一个输入的值,不能循环输入。
2)大概看了一下你的排序,没有求证,是错误的,比如数组会越界。
3)输出排序后的内容,最后两句代码,你将输出写在了排序的代码里,排序还没有排好,输出的不可能正确。
.....
最严重的就是第一条了,你得看看Java的标准输入输出。
人就是无奈
2013-10-20 · TA获得超过152个赞
知道答主
回答量:260
采纳率:0%
帮助的人:99.4万
展开全部
我刚写的
先定义一个类实现序列化
public class Students implements Comparable{
private String name;
private int grade;
public Students(String name, int grade) {
super();
this.name = name;
this.grade = grade;
}
public Students() {
super();
// TODO Auto-generated constructor stub
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
@Override
public int compareTo(Object obj) {
// TODO Auto-generated method stub
return ((Students)obj).getGrade()-this.getGrade();
}

}

在另一个类里测试(刚试过可以)
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入学生个数");
int number = input.nextInt();
Students[] ss=new Students[number];
for(int i=1;i<=number;i++){
System.out.print("请输入第"+i+"个学生的姓名");
String name = input.next();
System.out.print("请输入第"+i+"个学生的成绩");
int grade=input.nextInt();
ss[i-1]=new Students(name,grade);
}
Arrays.sort(ss);
for(int k=1;k<=number;k++){
System.out.println(ss[k-1].getName()+":"+ss[k-1].getGrade());
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式