成绩排序(10分)

博客给出了一个程序题目,包含输入输出格式、样例及时间和内存限制。代码使用C语言,定义二维数组接收输入,计算每行平均值,再用冒泡排序对平均值排序,最后按格式输出数组元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目内容:

从键盘输入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>
#include <string.h>
int main(){
int a[4][5];//数组初始化i,j定义的是行和列(大小),从1开始,输入从0开始。
float avg,sum;
int i,j;
for(i=1;i<=3;i++)
for(j=1;j<=4;j++)
scanf("%d",&a[i][j]);
for(i=1;i<=3;i++){
sum=0;
for(j=1;j<=4;j++){
sum+=a[i][j];
}
a[i][0]=sum/4;
}

int b[5];
for(i = 1; i ❤️; i ++)
{
for(j = 3; j>i; j --)
{
/* 冒泡排序,把最小的放到最后 */
if (a[j-1][0]<a [j][0])
{
memcpy(b,a[j-1], sizeof(b));
memcpy(a[j-1], a[j], sizeof(b));
memcpy(a[j], b, sizeof(b));
}
}
}
for(i=1;i<=3;i++){
for(j=1;j<=4;j++){
if(j<4)
printf("%d,",a[i][j]);
else
printf("%d\n",a[i][j]);
}

}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值