一生一世陪你


私信TA

用户名:wodeshijie

访问量:23434

签 名:

我要好好地写代码..........

等  级
排  名 428
经  验 4926
参赛次数 1
文章发表 19
年  龄 10
在职情况 学生
学  校 河南农业大学
专  业

  自我简介:

我就是我,可能不是太好,但是我就是我,谁也不能取代........

        这个题的大概意思就是找前五名发奖学金,但是有前提,这五名的排名是按照这样的规则的,就是总分最高的排在最前面,,而总分一样的则看语文成绩,谁的语文成绩高些则谁的排名靠前,而总分一样的并且语文成绩也一样的则看学号,谁的学号小,则谁的排名靠前一些。

        而解答这个问题其实很简单,首先我们都知道学校的排名,前面是各科的成绩,后面是总分,所以可以创建一个数组来解决这问题。首先输入一个数n代表人数,之后创建一个二维数组(n,5),前三列放三门成绩,后面的第四列放学号,第五列放成绩。然后用冒泡法进行排序即可。

        package itcast3;

import java.util.Scanner;
public class L1106 {
public static void main(String[] args) {
	Scanner m=new Scanner(System.in);
	int n=m.nextInt();
	int array[][]=new int [n][5];
		
	for(int i=0;i<n;i++)
	{
		for(int k=0;k<3;k++) {
			array[i][k]=m.nextInt();
		}
		array[i][3]=i+1;
		array[i][4]=array[i][0]+array[i][1]+array[i][2];		
	}
	
		for(int i=0;i<n-1;i++)
			for(int k=i+1;k<n;k++)
			if(array[i][4]<array[k][4])
			{
				int temp;
				for(int j=0;j<5;j++)
				{
					temp=array[i][j];
					array[i][j]=array[k][j];
					array[k][j]=temp;
				}
			}
		
				else if(array[i][4]==array[k][4])
				{
					if(array[i][0]<array[k][0])
					{
						int temp;
						for(int j=0;j<5;j++)
						{
							temp=array[i][j];
							array[i][j]=array[k][j];
							array[k][j]=temp;
						}
					}
					else if(array[i][0]==array[k][0])
					{
						if(array[i][3]>array[k][3])
						{
							int temp;
							for(int j=0;j<5;j++)
							{
								temp=array[i][j];
								array[i][j]=array[k][j];
								array[k][j]=temp;
							}
						}
					}
				}
			
	for(int i=0;i<5;i++)
	System.out.println(array[i][3]+" "+array[i][4]);
	}
}


 

0.0分

0 人评分

  评论区

  • «
  • »