静之城 @ 2019-07-24 14:16:32
int main()
{
int a[100]={0},l,i,j,n,k,temp;
int b[100]={0},c[100]={0},d[100]={0},min[100]={0};
int ji=0;
scanf("%d",&n);
for(l=1;l<=n;l++)
{
scanf("%d",&a[l]);
scanf("%d",&b[l]);
scanf("%d",&c[l]);
d[l]=a[l]+c[l]+b[l];
min[l]=l;
}
for(i=n-1;i>=0;i--)
{
j=0;
for(j=0;j<i;j++)
{
if(d[j]<d[j+1])
{
temp=d[j];
d[j]=d[j+1];
d[j+1]=temp;
temp=min[j];
min[j]=min[j+1];
min[j+1]=temp;
}
}
}
for(l=1;l<=5||i<=n;l++)
{
printf("l=%d\n",l);
printf("%d",min[l]);
printf(" ");
printf("%d",d[l]);
printf("\n");
}
return 0;
}
by Gary818 @ 2019-07-24 14:30:20
@静之城
希望更丰富的展现?使用Markdown
by 学而思李老师 @ 2019-07-24 14:32:30
你应该没有考虑语文分高者优先,我的结构体快排你可以学一下,可以省(偷)很多时间(懒)
by 学而思李老师 @ 2019-07-24 14:32:56
#include <cstdio>
#include <algorithm>
using namespace std;
const int MAX = 300;
struct P1093{
int num;
int chinese, math, english;
int ttl;
};
P1093 arr[MAX + 5];
bool cmp(P1093 a, P1093 b)
{
if(a.ttl > b.ttl) return true;
else if(a.ttl < b.ttl) return false;
else{
if(a.chinese > b.chinese) return true;
else if(a.chinese < b.chinese) return false;
else{
if(a.num > b.num) return false;
else return true;
}
}
}
int main(){
// freopen("text.out", "w", stdout);
int n;
scanf("%d", &n);
for(int i = 1; i <= n; i ++){
scanf("%d %d %d", &arr[i].chinese, &arr[i].math, &arr[i].english);
arr[i].num = i;
arr[i].ttl = arr[i].chinese + arr[i].math + arr[i].english;
}
sort(arr + 1, arr + n + 1, cmp);
for(int i = 1; i <= 5; i ++){
printf("%d %d\n", arr[i].num, arr[i].ttl);
}
return 0;
}
by 学而思李老师 @ 2019-07-24 14:33:39
@静之城
by 静之城 @ 2019-07-25 17:38:44
谢谢,大神/大佬。 @社会我猪酐