题解 | #字符统计#

字符统计

https://www.nowcoder.com/practice/c1f9561de1e240099bdb904765da9ad0

#include <stdio.h>
struct str{
    char zm;
    int time;
};
int main() {
    char a[1000];
    while (scanf("%s",a) != EOF) { 
        int n=0,i,j,time;
        while(a[n]!=0) n++;
        struct str t[n],temp;
        for(i=0;i<n;i++)
        t[i].zm=a[i];
        //冒泡字母排序
         for(i=0;i<n-1;i++)
         for(j=0;j<n-i-1;j++)
         if(t[j].zm>t[j+1].zm){
            temp=t[j];
            t[j]=t[j+1];
            t[j+1]=temp;
         }
         //统计次数
         for(i=0;i<n;i++){
            time=0;
            for(j=0;j<i;j++)
            if(t[i].zm==t[j].zm)
            time++;
            else if(t[i].zm!=t[j].zm&&time!=0)
            break;
            t[i].time=time;
         }
         //删除重复
         for(i=0;i<n-1;i++)
         if(t[i].zm==t[i+1].zm){
            for(j=i;j<n-1;j++){
                t[j]=t[j+1];
            }
            n--;
            i--;
         }
         //冒泡次数排序
         for(i=0;i<n-1;i++)
         for(j=0;j<n-i-1;j++)
         if(t[j].time<t[j+1].time){
            temp=t[j];
            t[j]=t[j+1];
            t[j+1]=temp;
    }
        //输出
        for(i=0;i<n;i++)
        printf("%c",t[i].zm);
    return 0;
}}

全部评论

相关推荐

牛客737698141号:他们可以看到在线简历的。。。估计不合适直接就拒了
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务