日志17
结构体 成绩排序:
#include<iostream>
#include<string>
using namespace std;
struct grade
{
string name;
int a,b,c;
int sum;
}g[100];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>g[i].name>>g[i].a>>g[i].b>>g[i].c;
g[i].sum=g[i].a + g[i].b + g[i].c;
}
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if (g[j].sum < g[j + 1].sum)
{
swap(g[j],g[j+1]);
}
}
}
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(g[j].sum!=g[j+1].sum) continue;
else if(g[j].name>g[j+1].name)
{
swap(g[j],g[j+1]);
}
}
}
for(int i=0;i<n;i++)
{
cout << g[i].name << ' ' << g[i].sum << endl;
}
}
采用冒泡排序的思想,先对总分进行排序,总分相同按名字的字典序进行排序
#include<iostream>
#include<string>
using namespace std;
struct grade
{
string name;
int a,b,c;
int sum;
}g[100];
int main()
{
int n;
cin>>n;
for(int i=0;i<n;i++)
{
cin>>g[i].name>>g[i].a>>g[i].b>>g[i].c;
g[i].sum=g[i].a + g[i].b + g[i].c;
}
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if (g[j].sum < g[j + 1].sum)
{
swap(g[j],g[j+1]);
}
}
}
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-i-1;j++)
{
if(g[j].sum!=g[j+1].sum) continue;
else if(g[j].name>g[j+1].name)
{
swap(g[j],g[j+1]);
}
}
}
for(int i=0;i<n;i++)
{
cout << g[i].name << ' ' << g[i].sum << endl;
}
}
采用冒泡排序的思想,先对总分进行排序,总分相同按名字的字典序进行排序
全部评论
相关推荐