// // main.c // 测试题 7 // 7、 从键盘输入一大堆字符串,统计A、B、C、D的出现次数,最后出现次数由高到低输出字母和出现次数。(C语言) // Created by black on 15/11/2. // Copyright © 2015年 black. All rights reserved. //
#include <stdio.h> #include <string.h>
int main(int argc, const char * argv[]) {
// 定义一个字符串数组 char str[100]; //定义四个变量,分别统计出现次数 int count_A = 0,count_B = 0,count_C = 0,count_D = 0; //定义指针数组,用来排序 int *arr[4]={&count_A,&count_B,&count_C,&count_D};
//提示输入字符串 printf("请输入字符串:\n"); fgets(str, sizeof(str), stdin);
//分别统计ABCD出现的次数 for (int i=0; i<strlen(str); i++) {
switch (str) { case 65: count_A++; break; case 66: count_B++; break; case 67: count_C++; break; case 68: count_D++; break; } }
//选择排序法给arr排序,arr[0]指向最大的count for (int i=0; i<3; i++) { for (int j=i+1; j<4; j++) { if (*arr < *arr[j]) { int *temp = arr; arr = arr[j]; arr[j] = temp; } } }
//按字母出现次数输出结果 for (int i=0; i<4; i++) { if (arr == &count_A) { printf("A出现的次数:%d\n",count_A); }else if (arr == &count_B) { printf("B出现的次数:%d\n",count_B); }else if (arr == &count_C) { printf("C出现的次数:%d\n",count_C); }else if (arr == &count_D) { printf("D出现的次数:%d\n",count_D); } } return 0; }
|