acm排序篇#1

                                      排序篇#1:
1.sort使用
 必要头文件:
   #include <algorithm>;
 简单的:
   int a[10];
   sort(a,a+10);//默认升序
   sort(a,a+10,greater<int>());//降序

2.结构体排序(与sort结合使用)
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>

using  namespace std;
struct A
{
    int num;
    int sum;
    char name[10];
}acmer[1000];

bool cmp(A x,A y)
{
    if(x.num!=y.num)
        return x.num>y.num;
    else if(x.sum!=y.sum)
        return x.sum<y.sum;
    else
        return strcmp(x.name,y.name)<0;
}
int main()
{
    freopen("in.txt","r",stdin);//*
    int n,m;
    int as,bs,i,j;
    char s;
    scanf("%d %d",&n,&m);
    int t=0;
    memset(acmer,0,sizeof(acmer));
    while(~scanf("%s",acmer[t].name))
    {
        for(i=0;i<n;i++)
        {
            scanf("%d%c",&as,&s);//注意此处空格%d%c 之间不能有空格
            if(as>0){
                acmer[t].num++;
                if(s=='('){
                    scanf("%d%c",&bs,&s);//!!
                   acmer[t].sum+=as+m*bs;
                }
                else
                    acmer[t].sum+=as;
            }
        }
        t++;
    }
    sort(acmer,acmer+t,cmp);
    for(j=0;j<t;j++)
        printf("%-10s %2d %4d\n",acmer[j].name,acmer[j].num,acmer[j].sum);
    return 0;
}
//HDU - 1862

freopen("in.txt","r",stdin);
  有了它,我们不需要再用键盘读入样本数据(题目给的input),便可以坐等小黑窗自动output;
  怎么建立呢?
    我们只需要在project 所在的file里新建一个文本文档,并命名为 in ,
    然后把样本数据(题目给的input)复制到in文本文档里保存即可。
3.字符串排序
//待耕。。。。


  

猜你喜欢

转载自blog.csdn.net/a_lazy_Rabbit/article/details/81106158