我是这样做的。。。。
代码:
#include "stdio.h" int main(int argc, const char * argv[]) { //保存输入信息 char inputbuffer[1000]; //获取控制台输入 printf("请输入字符串。。回车确认"); scanf("%s",inputbuffer); int Counter_A=0,Counter_B=0,Counter_C=0,Counter_D=0; int i=0;//循环变量 while (inputbuffer!='\0') { switch (inputbuffer) { case 'A': Counter_A++; break; case 'B': Counter_B++; break; case 'C': Counter_C++; break; case 'D': Counter_D++; break; default: break; } i++;//循环变量自增 } //定义两个数组 用来表示 字符标识与统计结果 char tagarray[4] ={'A','B','C','D'}; int counterarray[4] ={Counter_A,Counter_B,Counter_C,Counter_D}; //排序部分 for (int j = 0; j<3; j++) { for(int k = 0;k<3-j;k++) { if (counterarray[k] < counterarray[k+1]) { // 当前一个元素小于后一个元素时,交换它们的位置 int temp = counterarray[k]; char tempchar=tagarray[k]; counterarray[k] = counterarray[k+1]; tagarray[k]=tagarray[k+1]; counterarray[k+1] = temp; tagarray[k+1]=tempchar; } } } //输出部分 int l=0; while (l<4) { printf("%c出现了%d个\n",tagarray[l],counterarray[l]); l++; } return 0; }
|