#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;
}
c++如何巧妙变为c,青高收捷达
- 写回答
- 好问题 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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥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 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看