谁能够帮我看看java问题,非常感谢
这是代码:importjava.util.Scanner;publicclassA5_23{publicstaticvoidmain(String[]args){Scan...
这是代码:
import java.util.Scanner;
public class A5_23{
public static void main(String[] args){
Scanner in = new Scanner (System.in);
System.out.println("请输入学生的人数:");
int renshu = in.nextInt(); //存储学生的人数
System.out.println("请输入课程的数目:");
int courseNum = in.nextInt(); //存储课程的数目
String[] name = new String[renshu]; //声明一个String数组用来存储学生的名字
String[] course = new String[courseNum]; //声明一个String数组用来存储课程的名称
int[][] cj = new int[renshu][courseNum];
int[] sum = new int[renshu];
int[] avg = new int[renshu];
String[] str = new String[renshu];
/* 用来循环存储课程的名称 */
for(int i =0;i<course.length;i++){
System.out.println("请定义第"+(i+1)+"门课程的名字");
course[i] = in.next();
}
/* 用来录入学生的各科成绩 */
for(int i=0;i<renshu;i++){
int s=0;
System.out.println("请输入学生的姓名");
name[i]=in.next();
String strll="";
for(int j=0;j<courseNum;j++){
System.out.println("请输入学生"+name[i]+course[j]+"的成绩");
cj[i][j]=in.nextInt();
s+=cj[i][j];
strll+=cj[i][j]+"\t";
}
sum[i]=s;
avg[i]=s/courseNum;
str[i]=name[i]+"\t"+strll+sum[i]+"\t"+avg[i];
}
for(int i=0;i<sum.length-1;i++){
for(int j=0;j<sum.length-1;j++){
if(sum[j]<sum[j++]){
int t1=sum[j];
String t2=str[j];
sum[j]=sum[j+1];
str[j]=str[j+1];
sum[j+1]=t1;
str[j+1]=t2;
}
}
}
System.out.print("学生");
/* 输出课程 名 */
for(int i=0;i<course.length;i++){
System.out.print("\t"+course[i]);
}
System.out.print("\t总分\t平均分\t排行榜");
System.out.println();
/* 输出每门课的成绩 */
for(int i=0;i<renshu;i++){
System.out.println(str[i]+"\t"+"第"+(i+1)+"名");
}
}
}
我用Eclipse编译时,我想安排总分的大小先后排行,并给出排名:
请输入学生的人数:
3
请输入课程的数目:
3
请定义第1门课程的名字
java
请定义第2门课程的名字
c
请定义第3门课程的名字
c#
请输入学生的姓名
dd
请输入学生ddjava的成绩
86
请输入学生ddc的成绩
54
请输入学生ddc#的成绩
56
请输入学生的姓名
ee
请输入学生eejava的成绩
78
请输入学生eec的成绩
76
请输入学生eec#的成绩
75
请输入学生的姓名
ww
请输入学生wwjava的成绩
68
请输入学生wwc的成绩
67
请输入学生wwc#的成绩
96
学生 java c c# 总分 平均分 排行榜
dd 86 54 56 196 65 第1名 第1名
ee 78 76 75 229 76 第2名 第2名
ww 68 67 96 231 77 第3名 第3名 展开
import java.util.Scanner;
public class A5_23{
public static void main(String[] args){
Scanner in = new Scanner (System.in);
System.out.println("请输入学生的人数:");
int renshu = in.nextInt(); //存储学生的人数
System.out.println("请输入课程的数目:");
int courseNum = in.nextInt(); //存储课程的数目
String[] name = new String[renshu]; //声明一个String数组用来存储学生的名字
String[] course = new String[courseNum]; //声明一个String数组用来存储课程的名称
int[][] cj = new int[renshu][courseNum];
int[] sum = new int[renshu];
int[] avg = new int[renshu];
String[] str = new String[renshu];
/* 用来循环存储课程的名称 */
for(int i =0;i<course.length;i++){
System.out.println("请定义第"+(i+1)+"门课程的名字");
course[i] = in.next();
}
/* 用来录入学生的各科成绩 */
for(int i=0;i<renshu;i++){
int s=0;
System.out.println("请输入学生的姓名");
name[i]=in.next();
String strll="";
for(int j=0;j<courseNum;j++){
System.out.println("请输入学生"+name[i]+course[j]+"的成绩");
cj[i][j]=in.nextInt();
s+=cj[i][j];
strll+=cj[i][j]+"\t";
}
sum[i]=s;
avg[i]=s/courseNum;
str[i]=name[i]+"\t"+strll+sum[i]+"\t"+avg[i];
}
for(int i=0;i<sum.length-1;i++){
for(int j=0;j<sum.length-1;j++){
if(sum[j]<sum[j++]){
int t1=sum[j];
String t2=str[j];
sum[j]=sum[j+1];
str[j]=str[j+1];
sum[j+1]=t1;
str[j+1]=t2;
}
}
}
System.out.print("学生");
/* 输出课程 名 */
for(int i=0;i<course.length;i++){
System.out.print("\t"+course[i]);
}
System.out.print("\t总分\t平均分\t排行榜");
System.out.println();
/* 输出每门课的成绩 */
for(int i=0;i<renshu;i++){
System.out.println(str[i]+"\t"+"第"+(i+1)+"名");
}
}
}
我用Eclipse编译时,我想安排总分的大小先后排行,并给出排名:
请输入学生的人数:
3
请输入课程的数目:
3
请定义第1门课程的名字
java
请定义第2门课程的名字
c
请定义第3门课程的名字
c#
请输入学生的姓名
dd
请输入学生ddjava的成绩
86
请输入学生ddc的成绩
54
请输入学生ddc#的成绩
56
请输入学生的姓名
ee
请输入学生eejava的成绩
78
请输入学生eec的成绩
76
请输入学生eec#的成绩
75
请输入学生的姓名
ww
请输入学生wwjava的成绩
68
请输入学生wwc的成绩
67
请输入学生wwc#的成绩
96
学生 java c c# 总分 平均分 排行榜
dd 86 54 56 196 65 第1名 第1名
ee 78 76 75 229 76 第2名 第2名
ww 68 67 96 231 77 第3名 第3名 展开
3个回答
展开全部
排序代码不正确。sum[j]<sum[j++]永远为false,因为先判断sum[j]<sum[j],然后j++;
我修改了一下
import java.util.Scanner;
public class A5_23{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入学生的人数:");
int renshu = in.nextInt(); // 存储学生的人数
System.out.println("请输入课程的数目:");
int courseNum = in.nextInt(); // 存储课程的数目
String[] name = new String[renshu]; // 声明一个String数组用来存储学生的名字
String[] course = new String[courseNum]; // 声明一个String数组用来存储课程的名称
int[][] cj = new int[renshu][courseNum];
int[] sum = new int[renshu];
int[] avg = new int[renshu];
String[] str = new String[renshu];
/* 用来循环存储课程的名称 */
for (int i = 0; i < course.length; i++) {
System.out.println("请定义第" + (i + 1) + "门课程的名字");
course[i] = in.next();
}
/* 用来录入学生的各科成绩 */
for (int i = 0; i < renshu; i++) {
int s = 0;
System.out.println("请输入学生的姓名");
name[i] = in.next();
String strll = "";
for (int j = 0; j < courseNum; j++) {
System.out.println("请输入学生" + name[i] + course[j] + "的成绩");
cj[i][j] = in.nextInt();
s += cj[i][j];
strll += cj[i][j] + "\t";
}
sum[i] = s;
avg[i] = s / courseNum;
str[i] = name[i] + "\t" + strll + sum[i] + "\t" + avg[i];
}
//排序
for (int i = 0; i < sum.length - 1; i++) {
for (int j = 0; j < sum.length - 1; j++) {
for (int k = j+1; k < sum.length - 1; k++) {
if (sum[j] < sum[k]) {
int t1 = sum[j];
String t2 = str[j];
sum[j] = sum[k];
str[j] = str[k];
sum[k] = t1;
str[k] = t2;
}
}
}
}
System.out.print("学生");
/* 输出课程 名 */
for (int i = 0; i < course.length; i++) {
System.out.print("\t" + course[i]);
}
System.out.print("\t总分\t平均分\t排行榜");
System.out.println();
/* 输出每门课的成绩 */
for (int i = 0; i < renshu; i++) {
System.out.println(str[i] + "\t" + "第" + (i + 1) + "名");
}
}
我修改了一下
import java.util.Scanner;
public class A5_23{
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("请输入学生的人数:");
int renshu = in.nextInt(); // 存储学生的人数
System.out.println("请输入课程的数目:");
int courseNum = in.nextInt(); // 存储课程的数目
String[] name = new String[renshu]; // 声明一个String数组用来存储学生的名字
String[] course = new String[courseNum]; // 声明一个String数组用来存储课程的名称
int[][] cj = new int[renshu][courseNum];
int[] sum = new int[renshu];
int[] avg = new int[renshu];
String[] str = new String[renshu];
/* 用来循环存储课程的名称 */
for (int i = 0; i < course.length; i++) {
System.out.println("请定义第" + (i + 1) + "门课程的名字");
course[i] = in.next();
}
/* 用来录入学生的各科成绩 */
for (int i = 0; i < renshu; i++) {
int s = 0;
System.out.println("请输入学生的姓名");
name[i] = in.next();
String strll = "";
for (int j = 0; j < courseNum; j++) {
System.out.println("请输入学生" + name[i] + course[j] + "的成绩");
cj[i][j] = in.nextInt();
s += cj[i][j];
strll += cj[i][j] + "\t";
}
sum[i] = s;
avg[i] = s / courseNum;
str[i] = name[i] + "\t" + strll + sum[i] + "\t" + avg[i];
}
//排序
for (int i = 0; i < sum.length - 1; i++) {
for (int j = 0; j < sum.length - 1; j++) {
for (int k = j+1; k < sum.length - 1; k++) {
if (sum[j] < sum[k]) {
int t1 = sum[j];
String t2 = str[j];
sum[j] = sum[k];
str[j] = str[k];
sum[k] = t1;
str[k] = t2;
}
}
}
}
System.out.print("学生");
/* 输出课程 名 */
for (int i = 0; i < course.length; i++) {
System.out.print("\t" + course[i]);
}
System.out.print("\t总分\t平均分\t排行榜");
System.out.println();
/* 输出每门课的成绩 */
for (int i = 0; i < renshu; i++) {
System.out.println(str[i] + "\t" + "第" + (i + 1) + "名");
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-02-15 · 知道合伙人互联网行家
关注
展开全部
具体报什么错误呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询