本帖最后由 huanglinwang 于 2016-5-22 21:42 编辑
// 输入一个字符串统计abc出现的次数,按照高到低的顺序输出
//利用函数调用实现
#include <stdio.h>
int countA = 0 ,countB = 0,countC = 0,countD = 0;
void abcdPaiXu();
void abcdCiShu(char ch[]);
int main(int argc, const char * argv[]) {
//定义一个字符数组 --累加器
char c[100] = {' '};
//提示用户输入一个字符串
printf("请输入一个字符串用空格结束\n");
//接收字符串
scanf("%s",c);
//求出字符串中abcd的数量
abcdCiShu(c);
//abcd的数量进行排序
abcdPaiXu(countA, countB, countC, countD);
return 0;
}
/**
* 将一个字符串中的abcd字母统计有多少个
*
* @param ch 字符串
*/
void abcdCiShu(char ch[]){
for (int i = 0; i < 100; i++) {
//这里利用switch进行判断
switch (ch) {
case 'a':
case 'A':
countA++;
break;
case 'b':
case 'B':
countB++;
break;
case 'C':
case 'c':
countC++;
break;
case 'D':
case 'd':
countD++;
break;
default:
break;
}
}
// //先不进行判断次数的多少,直接输出
// printf("a出现了%d次\n",countA);
// printf("b出现了%d次\n",countB);
// printf("c出现了%d次\n",countC);
// printf("d出现了%d次\n",countD);
}
/**
* 给四个int类型的值,然后对应abcd 进行排序输出
*
* @param a1 a对应的数量
* @param b1 b对应的数量
* @param c1 c对应的数量
* @param d1 d对应的数量
*/
void abcdPaiXu(int a1,int b1,int c1,int d1){
int a[4] = {a1,b1,c1,d1};
char c[4] = {'a','b','c','d'};
for (int i = 0; i <4; i++) {
for (int j = 0 ; j < 3; j++) {
if (a[j] < a[j+1]) {
char ch;
ch = a[j];
a[j]= a[j+1];
a[j+1] = ch;
int b;
b = a[j];
a[j] = a[j+1];
a[j+1] = b;
}
}
}
for (int i = 0; i<4; i++) {
printf("%c = %d\n",c,a);
}
}
|
|