程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 編程c語言-新手OJ, 找出字符串中出現最多的字母,本機運行正確, 但是wrong answer, 求大神指點

編程c語言-新手OJ, 找出字符串中出現最多的字母,本機運行正確, 但是wrong answer, 求大神指點

編輯:編程綜合問答
新手OJ, 找出字符串中出現最多的字母,本機運行正確, 但是wrong answer, 求大神指點

Description

鐘Sir是一個迷信的(superstitious)家伙。他相信每一個字符串(string)裡都有一個幸運字符。我們可以通過以下方法找到這個字符。例如,在字符串abbccc中,c 出現的次數最多,所以這個幸運字符就是 c 啦!(>_<)  (鐘Sir的想法好簡單啊…)

Input

第一行是測試數據的組數n,接下來的每組測試數據占一行,每行數據不超過1000個字符且非空。

字符串裡只含小寫字母。

Output

每組數據對應輸出一行,包括出現次數最多的字符和該字符出現的次數,中間是一個空格。如果有多個字符出現的次數相同且最多,那麼輸出ASCII碼最小的那一個字符。

Sample Input

2
abbccc
adfadffasdf

Sample Output

c 3
f 4
=====t===t

#include
#include
int main(void){
int n, g, i, z[28], max, xia;
char c[1050], ch;
scanf("%d", &n);
ch=getchar();
for(g=1; g<=n; g++){

for(i=0; i<=27; i++)
z[i]=0;

i=0;
while((c[i]=getchar())!=0&&c[i]!='\n')
i++;

for(i=0; i<strlen(c); i++)
switch(c[i]){
case 'a': z[0]++; break;
case 'b': z[1]++; break;
case 'c': z[2]++; break;
case 'd': z[3]++; break;
case 'e': z[4]++; break;
case 'f': z[5]++; break;
case 'g': z[6]++; break;
case 'h': z[7]++; break;
case 'i': z[8]++; break;
case 'j': z[9]++; break;
case 'k': z[10]++; break;
case 'l': z[11]++; break;
case 'm': z[12]++; break;
case 'n': z[13]++; break;
case 'o': z[14]++; break;
case 'p': z[15]++; break;
case 'q': z[16]++; break;
case 'r': z[17]++; break;
case 's': z[18]++; break;
case 't': z[19]++; break;
case 'u': z[20]++; break;
case 'v': z[21]++; break;
case 'w': z[22]++; break;
case 'x': z[23]++; break;
case 'y': z[24]++; break;
case 'z': z[25]++; break;
}

max=z[0]; xia=0;
for(i=1; i<=25; i++)
if(z[i]>max){
max=z[i];
xia=i;
}

ch='a'+xia;
if(c[0]=='\n')
printf("");
else
printf("%c %d\n", ch, max);
}
return 0;
}

復制可運行。

最佳回答:


 #include <string.h>
#include"stdio.h"
int main(void)
{
    int n,i, z[26], max, xia;
    char c[1050], ch;

    scanf("%d",&n);
    while(n>0)
    {
        n--;
        scanf("%s", c);

        for(i=0; i<26; i++)
            z[i]=0;
        xia=strlen(c);

        for(i=0; i<xia; i++)
            z[c[i]-'a']++;

        max=z[0]; xia=0;
        for(i=1; i<=25; i++)
        if(z[i]>max){ 
            max=z[i];
            xia=i;
        }

        ch='a'+xia;
        printf("%c %d\n", ch, max);
    }

    return 0;
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved