成绩统计。

成绩统计。

时间: 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]<<' ';}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注