解题思路:结构体知识,及排序方法
注意事项:思路理清,哪一个比较重要
参考代码:
#include<stdio.h>
struct student
{
int num;//学号
int a,b,c;//三科成绩
int sum;//总分
};
int main()
{
int n;
scanf("%d",&n);
struct student st[n+1],t;
int i,j;
for(i=1;i<=n;i++)
{
scanf("%d %d %d",&st[i].a,&st[i].b,&st[i].c);
st[i].num=i;
st[i].sum=st[i].a+st[i].b+st[i].c;
}
//排序
for(i=1;i<=n-1;i++)
{
for(j=1;j<=n-i;j++)
{
if(st[j].sum<st[j+1].sum)
{
t=st[j];
st[j]=st[j+1];
st[j+1]=t;
}
if(st[j].sum==st[j+1].sum)
{
if(st[j].a<st[j+1].a)
{
t=st[j];
st[j]=st[j+1];
st[j+1]=t;
}
if(st[j].a==st[j+1].a)
{
if(st[j].num>st[j+1].num)
{
t=st[j];
st[j]=st[j+1];
st[j+1]=t;
}
}
}
}
}
for(i=1;i<=5;i++)
printf("%d %d\n",st[i].num,st[i].sum);
return 0;
}
0.0分
2 人评分
大神老白 (C语言代码)浏览:690 |
【偶数求和】 (C语言代码)浏览:674 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:897 |
a+b浏览:452 |
C语言程序设计教程(第三版)课后习题10.3 (C语言代码)浏览:523 |
小O的乘积 (C++代码)浏览:545 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:477 |
Manchester- Hello, world!浏览:13280 |
WU-C语言程序设计教程(第三版)课后习题5.6 (C语言代码)浏览:811 |
WU-蓝桥杯历届试题-打印十字图 (C++代码)浏览:1154 |