题目: 与 UVa10008 :What's Cryptanalysis? 方法相似。
給你一列文字,請你找出各字元出現的次數。
Input
每筆測試資料一列。每列最大長度為1000。
Output
對每一列輸入,請輸出各字元的ASCII值及其出現的次數。請根據出現的次數由小到大輸出。如果有2個以上的字元有相同的次數,則ASCII值較大的先輸出。
測試資料間請空一列,參考Sample Output
Sample Input
AAABBC 122333
Sample Output
67 1 66 2 65 3 49 1 50 2 51 3
#include <stdio.h>
#include <string.h>
int main()
{
int end=1;
while(1)
{
char arr[1001]={0};
int str[128]={0}, i, j;
if(gets(arr)==NULL) break;
if(end) end=0;
else printf("\n");
for(i=0; i<strlen(arr); i++)
str[arr[i]]++;
int max=0;
for(i=0; i<128; i++) //得出出现次数最大值
if(max<str[i]) max=str[i];
for(i=1; i<=max; i++) //从1开始找到最大值
for(j=128; j>=0; j--) //次数相同时,从ASCII大的往小的找
if(i==str[j]) printf("%d %d\n",j,i);
}
}