成绩排序:从键盘输入3个同学4门课的成绩,将其按平均分从高到低排序输出。

题目内容:

从键盘输入3个同学4门课的成绩,将其按平均分从高到低排序输出。

输入格式:

输入3个同学4门课的成绩

输出格式:

按平均分从高到低排序输出

输入样例:

89 78 80 76 88 78 75 90 99 92 100 89[回车]

输出样例:

99,92,100,89[回车]

88,78,75,90[回车]

89,78,80,76[回车]

时间限制:

500ms

内存限制:

32000kb

代码:

#include<stdio.h>
int main()
{
	int a[3][4];
	int sum[3]={0},n[3];
	for(int i=0;i<3;i++)
	{
		for(int j=0;j<4;j++)
		{
			scanf("%d",&a[i][j]);
			sum[i]+=a[i][j];
			n[i]=sum[i];
		}
	}
	for(int i=0;i<2;i++)
	{
		for(int j=0;j<2-i;j++)
		{
			if(sum[j]<sum[j+1])
			{
				int t=sum[j];
				sum[j]=sum[j+1];
				sum[j+1]=t;
			}
		}
	}
	for(int i=0;i<3;i++)
	{
		if(sum[i]==n[0]) printf("%d,%d,%d,%d\n",a[0][0],a[0][1],a[0][2],a[0][3]);
		if(sum[i]==n[1]) printf("%d,%d,%d,%d\n",a[1][0],a[1][1],a[1][2],a[1][3]);
		if(sum[i]==n[2]) printf("%d,%d,%d,%d\n",a[2][0],a[2][1],a[2][2],a[2][3]); 
	}
	return 0;
}
可以使用Java代码实现上述要求: ```java import java.util.*; public class StudentScore { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); String[] names = new String[5]; // 保存学生姓名 double[][] scores = new double[5][3]; // 保存学生成绩 double[] averages = new double[5]; // 保存学生平均成绩 // 输入学生姓名和成绩 for (int i = 0; i < 5; i++) { System.out.print("请输入第" + (i+1) + "位学生的姓名:"); names[i] = scanner.next(); System.out.print("请输入" + names[i] + "的Java成绩:"); scores[i][0] = scanner.nextDouble(); System.out.print("请输入" + names[i] + "的MySQL成绩:"); scores[i][1] = scanner.nextDouble(); System.out.print("请输入" + names[i] + "的Html成绩:"); scores[i][2] = scanner.nextDouble(); // 计算平均成绩 averages[i] = (scores[i][0] + scores[i][1] + scores[i][2]) / 3; } // 输出每名学生的成绩和平均成绩 System.out.println("姓名 Java MySQL Html 平均成绩成绩成绩"); for (int i = 0; i < 5; i++) { System.out.printf("%-7s%-8.2f%-8.2f%-8.2f%-9.2f%-9.2f%-9.2f\n", names[i], scores[i][0], scores[i][1], scores[i][2], averages[i], getMax(scores[i]), getMin(scores[i])); } // 按照平均成绩排序输出 sort(names, averages); System.out.println("按照平均成绩排序的结果:"); for (int i = 0; i < 5; i++) { System.out.println(names[i] + ":" + averages[i]); } } // 计算最成绩 public static double getMax(double[] scores) { double max = scores[0]; for (int i = 1; i < scores.length; i++) { if (scores[i] > max) { max = scores[i]; } } return max; } // 计算最成绩 public static double getMin(double[] scores) { double min = scores[0]; for (int i = 1; i < scores.length; i++) { if (scores[i] < min) { min = scores[i]; } } return min; } // 按照平均成绩排序 public static void sort(String[] names, double[] averages) { for (int i = 0; i < 4; i++) { for (int j = i+1; j < 5; j++) { if (averages[i] < averages[j]) { // 交换平均成绩 double temp = averages[i]; averages[i] = averages[j]; averages[j] = temp; // 交换学生姓名 String tempName = names[i]; names[i] = names[j]; names[j] = tempName; } } } } } ``` 运行上述代码,依次输入每位学生的姓名和三成绩,程序会输出每名学生的成绩和平均成绩,并按照平均成绩排序输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值