#import <stdio.h> // 定义一个主函数,作为程序的入口 int main() { // 定义一个数组array用来存放输入的字符串 char array[100]; // 提示输入一个字符串 printf("请输入一串字符串:\n"); // 接收输入的字符串,并赋值给数组array scanf("%s",array); // 定义两个变量用于for循环条件变量 int i,j; // 定义四个变量用来存放ABCD出现的次数 int a = 0; int b = 0; int c = 0; int d = 0; // 定义变量length用来存放输入字符串的长度 unsigned long length = strlen(array); // 定义for循环,当i小于字符串长度时,执行循环体,i加1 for (i = 0; i<length; i++) { // 统计A出现的次数 if (array == 'A') { a++; } // 统计B出现的次数 else if (array == 'B'){ b++; } // 统计C出现的次数 else if (array == 'C'){ c++; } // 统计D出现的次数 else if (array == 'D'){ d++; } } // 定义一个数组x用来存放ABCD出现的次数 int x[4] = {a,b,c,d}; // 定义temp用于冒泡排序标记排序趟数 int temp; // 冒泡排序 将a,b,c,d降序排序,i表示排序的趟数,j表示每趟排序的比较次数 for (i = 0; i<3; i++) { for(j = 0;j<3-i;j++) { if (x[j] < x[j+1]) { // 当前一个元素小于后一个元素时,交换它们的位置 temp = x[j]; x[j] = x[j+1]; x[j+1] = temp; } } } // 定义一个数组y用来存放ABCD标志 char y[4]; // 将数组x与数组y的出现次数和标志一一对应 for (i = 0; i<4; i++) { // 如果出现a次,则y='A' if(x == a && y[0] != 'A'&& y[1] != 'A' && y[2] != 'A' && y[3] != 'A') { y = 'A'; } // 如果出现b次,则y='B' else if(x == b && y[0] !='B' && y[1] != 'B' && y[2] != 'B' && y[3] != 'B') { y = 'B'; } // 如果出现c次,则y='C' else if(x == c && y[0] !='C' && y[1] != 'C' && y[2] != 'C' && y[3] != 'C') { y = 'C'; } // 如果出现d次,则y='D' else { y = 'D'; } } // 降序打印输出每个字母出现的次数 for (i = 0; i<4; i++) printf("%c出现%d次\n",y,x); return 0; }
|