两个元素的快排 NDU.i

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<ctime>
#define maxn 26+5
using namespace std;
char str[maxn];
int cnt[maxn];

struct Node   //struct Node 
{
    char name;
    int num;
}node[maxn];   // node [maxn +5 ]


bool cmp(Node x, Node y)  //bool cmp(Node x,Node y) 
{  
    return x.name > y.name;    //重点  return x.name>y.name;   return x.num>y.num;
    }  
    
int main()
{system("COLOR 1f");
    int T;
    scanf("%d",&T);
    for(int kase=1;kase<=T;kase++)
    {
        memset(cnt,0,sizeof(cnt)); 


        while(1)
        {
            gets(str);  //char str[maxn+5];
            for(int i=0;i<strlen(str);i++)
            {
                if(str[i]=='#') cnt[i]++;  //计数 cnt[i] ++ 
            }
            if(str[0]=='A') break;
        }


        for(int i=0;i<strlen(str);i++)
        {
            node[i].name='A'+i;
            node[i].num=cnt[i];
        }
        sort(node,node+strlen(str),cmp);   //对结构体进行排序  包括一个char name 一个 int num 


        printf("Case #%d:\n",kase);
        printf("%d\n",strlen(str));
        for(int i=0;i<strlen(str);i++)
        {
            printf("%c %d\n",node[i].name,node[i].num);
        }
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值