成绩统计。
时间: 1ms 内存:128M
描述:
有5个学生,考了3门课程,试编程求每个学生的总成绩,并按总成绩降序排列。(建议使用冒泡排序算法)函数sort要完成对总成绩的统计、排序并输出,提交此函数即可。#include<iostream>
using namespace std;
void sort( int s[5][3],int n);
int main()
{int s[5][3];int i,j;
for(i=0;i<5;i++)
for(j=0;j<3;j++)
cin>>s[i][j];
sort(s,5);
return 0;
}
输入:
用二维数组输入5个学生3门功课的成绩。
输出:
统计并排序。
示例输入:
90 78 60
100 80 70
65 78 89
76 54 67
90 80 90
示例输出:
260 250 232 228 197
提示:
参考答案(内存最优[920]):
#include <stdio.h>
int main()
{
int a[9][9],i,j,s[9]={0},t=0;
for(i=0;i<5;i++)
{
for(j=0;j<3;j++)
{
scanf("%d",&a[i][j]);
s[i]=s[i]+a[i][j];
}
}
for(j=0;j<4;j++)
{
for(i=0;i<3-j;i++)
{
if(s[i]<s[i+1])
{
t=s[i];
s[i]=s[i+1];
s[i+1]=t;
}
}
}
printf("%d ",s[4]);
for(i=0;i<4;i++)
{
i!=3?printf("%d ",s[i]):printf("%d",s[i]);
}
return 0;
}
参考答案(时间最优[0]):
#include<iostream>
using namespace std;
void sort( int s[5][3],int n);
int main()
{int s[5][3];int i,j;
for(i=0;i<5;i++)
for(j=0;j<3;j++)
cin>>s[i][j];
sort(s,5);
return 0;
}
void sort(int s[5][3],int n)
{ int i,j,temp;
int sum[5];
for(i=0;i<n;i++)
{sum[i]=0;
for(j=0;j<3;j++ ) sum[i]+=s[i][j];}
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(sum[i]<sum[j])
{temp=sum[i];sum[i]=sum[j];sum[j]=temp;}
for(i=0;i<5;i++)
cout<<sum[i]<<' ';}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。