黑马程序员技术交流社区
标题:
输入字符串,统计'A'、'B'、'C'、'D'出现次数,由高到低输出字...
[打印本页]
作者:
程清林
时间:
2016-5-26 14:35
标题:
输入字符串,统计'A'、'B'、'C'、'D'出现次数,由高到低输出字...
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char * argv[]) {
char ziMu[4]={'A','B','C','D'};
int ziMuCount[4]={0};//保存ziMu数组对应的个数
//用户输入
printf("请输入一串字符:\n");
char arr[80]={'\0'};
gets(arr);
//依次遍历‘A’,‘’B‘,’C‘,’D‘在字符串数组arr里的个数
for(int i='A',k=0;i<='D';i++,k++)
{
for(int j=0;j<strlen(arr);j++)
{
if (i==arr[j])
{
ziMuCount[k]++;
}
}
}
//选择排序将ziMuCount数组从大到小排列,相对于的ziMu数组也更换顺序
for(int i=0;i<3;i++) //1 3 5 2
{
for(int j=i+1;j<4;j++)
{
if(ziMuCount[i]<ziMuCount[j])
{
//更换ziMuCount数组元素的大小
int tempCount;
tempCount=ziMuCount[i];
ziMuCount[i]=ziMuCount[j];
ziMuCount[j]=tempCount;
//更换ziMuCount数组元素相对应ziMu数组元素
char temp;
temp=ziMu[i];
ziMu[i]=ziMu[j];
ziMu[j]=temp;
}
}
}
//遍历输出
for (int i=0; i<4; i++)
{
printf("字母%C的个数是:%d\n",ziMu[i],ziMuCount[i]);
}
return 0;
}
复制代码
输入字符串,统计'A'、'B'、'C'、'D'出现次数,由高到低输出字母和次数.期待还有更好的解决方案。
作者:
贪睡的猫
时间:
2016-5-26 14:51
先抢沙发,不多说话
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2