黑马程序员技术交流社区
标题:
基础测试
[打印本页]
作者:
sheji_56
时间:
2015-3-16 18:15
标题:
基础测试
从键盘输入一大堆字符串,统计A、B、C、D的出现次数,最后出现次数由高到低输出字母和出现次数。(C语言) 这个题是什么意思 ,哪位大侠 看懂了
作者:
zhqw_heima
时间:
2015-3-16 19:55
意思是统计输入的字符个数,比如A5 B4 C3 D2. 可以采用循环遍历实现
作者:
huhanze
时间:
2015-3-16 20:25
这题用结构体做比较方便 然后弄个算法排序 我还是写出来吧
/*
6.从键盘输入一大堆字符串,统计A、B、C、D的出现次数,最后出现次数由高到低输出字母和出现次数。
*/
#include<stdio.h>
#include<string.h>
//
typedef struct{
int count; // 对应字母的个数
char word; // 字母
} countWithWord;
int main()
{
// 选择排序算法的声明
void selectSort(countWithWord cww[],int n);
// 定义结构体数组并初始化
countWithWord cww[4] ={{0,'A'},{0,'B'},{0,'C'},{0,'D'}};
int i; // 循环变量
char *str; // 定义字符指针,用来指向所输入的字符串
gets(str); // 输入字符串
// 分别统计字母的个数
while(*str != '\0')
{
if(*str == 'A')
{
cww[0].count++;
}
else if(*str == 'B')
{
cww[1].count++;
}
else if(*str == 'C')
{
cww[2].count++;
}
else if(*str == 'D')
{
cww[3].count++;
}
str++;
}
// 排序
selectSort(cww,4);
// 输出排序后的结果
for(i = 0;i < 4; i++)
{
printf("%c出现的次数------%d\n",cww[i].word,cww[i].count);
}
return 0;
}
void selectSort(countWithWord cww[],int n)
{
int i,j,k;
countWithWord temp;
for(i = 0; i < n-1; i++)
{
k = i;
for(j = i + 1; j < n; j++)
{
if(cww[j].count > cww[k].count)
{
k = j;
}
}
if(k != i)
{
temp = cww[k];
cww[k] = cww[i];
cww[i] = temp;
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2