感谢大佬666 2022-05-26 17:04 采纳率: 83%
浏览 50
已结题

c++如何巧妙变为c,青高收捷达

题目链接
http://t.csdn.cn/DifhX

#include<iostream>
#include<algorithm>
using namespace std;
struct g {
    string name;
    int cnt;
};
bool cmp(g a,g b){
    return a.name<b.name;
}
int main() {
    string s;
    g q[101];
    int f=0;
    while(cin>>s){
        int k=0;
        for(int i=0;i<s.size();i++){
            if(s[i]!=0){
                int d=1;
                for(int j=i+1;j<s.size();j++){
                    if(s[i]==s[j]){
                        d++;
                        s[j]=0;
                    }
                }
                q[k].cnt=d;
                q[k].name=s[i];
                k++;
            }
        }
        sort(q,q+k,cmp);
        if(f!=0)cout<<endl;
        for(int i=0;i<k;i++)cout<<q[i].name<<" "<<q[i].cnt<<endl;
        f++;
    }
    return 0;
}
  • 写回答

2条回答 默认 最新

  • 浪客 2022-05-26 17:34
    关注
    
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    
    typedef struct
    {
        char name;
        int cnt;
    }g;
    
    int cmp(const g *a, const g *b)
    {
        return a->name > b->name;
    }
    int main()
    {
        char s[100];
        g q[101];
        int f=0,len;
    
        while(1)
        {
            scanf("%s",s);
            len=strlen(s);
    
            if(len==1)break;
    
            int k=0;
    
            for(int i=0; i<len; i++)
            {
                if(s[i]!=0)
                {
                    int d=1;
    
                    for(int j=i+1; j<len; j++)
                    {
                        if(s[i]==s[j])
                        {
                            d++;
                            s[j]=0;
                        }
                    }
    
                    q[k].cnt=d;
                    q[k].name=s[i];
                    k++;
                }
            }
    
            //sort(q,q+k,cmp);
            qsort(q,k,sizeof(g),cmp);
    
            if(f!=0)printf("\n");
    
            for(int i=0; i<k; i++)
                //cout<<q[i].name<<" "<<q[i].cnt<<endl;
                printf("%c %d\n",q[i].name,q[i].cnt);
    
            f++;
        }
    
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 已采纳回答 5月26日
  • 创建了问题 5月26日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看