c語言統計字符數(判斷a-z哪個字符出現次數最多)


http://poj.grids.cn/practice/2742

描述判斷一個由a-z這26個字符組成的字符串中哪個字符出現的次數最多輸入第1行是測試數據的組數n,每組測試數據占1行,是一個由a-z這26個字符組成的字符串
每組測試數據之間有一個空行,每行數據不超過1000個字符且非空輸出n行,每行輸出對應一個輸入。

一行輸出包括出現次數最多的字符和該字符出現的次數,中間是一個空格。
如果有多個字符出現的次數相同且最多,那么輸出ascii碼最小的那一個字符樣例輸入

2
abbccc

adfadffasdf

樣例輸出

c 3
f 4

我們可以設置一個數組sum[26];用來自己了輸入字符串中每個字母的出現數字,字母c的出現次數在數組元素sum[c-'a'].而且我們不要專門去開一個字母和sum的對照表,因為字母和sum本來就有對應關系
#include<stdio.h>
#include<string.h>
int main()
{
    int nCases;
    char a[1001];
    int sum[26],max;
    scanf("%d",&nCases);
    while(nCases--)
    {
        scanf("%s",a);
        for(int i=0;i<26;i++)
            sum[i]=0;
        for(int i=0;i<strlen(a);i++)
           sum[a[i]-'a']++;
        max=0;
        for(int i=1;i<26;i++)
        {
            if(sum[i]>sum[max])
                max=i;
        }
        printf("%c %d\n",max+'a',sum[max]);
    }
}

在處理字符串時,存儲長度為N的字符串,數組長度>=N+1;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM