2016-05-11 6 views
-5

Weiß jemand, warum gibt dieses Programm falsche Ausgabe? Ich habe alle Testfälle ausprobiert, die ich mir vorstellen kann, aber es scheint, dass es einige Testfälle gibt, die ich nicht behandle. Hier ist der Link: http://a2oj.com/p.jsp?ID=193a2oj zeigt falsche Antwort auf meine Vorlage für 193?

#include<stdio.h> 
#include<string.h> 
int main() 
{ 
    int t, i; 
    scanf("%d", &t); 
    for(i=0;i<t;i++) 
    { 
     char str[100]; 
     scanf("%s", str); 
     int l=strlen(str),j, c[26]= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; 
     for(j=0;j<l;j++) 
     { 
      int k; 
      for(k=97;k<=122;k++) 
      { 
       if((int)str[j]==k) 
        c[k-97]++; 
      } 
     } 
     int max=c[0], m, maxi=0; 
     for(m=0;m<26;m++) 
     { 
      if(c[m]>max) 
      { 
       max=c[m]; 
       maxi=m; 
      } 
     } 
     printf("%d %c\n", max, maxi+97); 
    } 
    return 0; 
} 
+2

Was das Programm macht und was die erwartete richtige Ausgabe? – fluter

+0

Es fragt nach Nein. der Testfälle danach, Es dauert die Eingabe der Zeichenfolgen der kleinen Alphabete von max.100 Ausgabe sollte die Nr. drucken. von max. Nein. des verwendeten Alphabets gefolgt von diesem Alphabet. Probeneingang: abac abc zzz Beispielausgabe: 2 a 1 a 3 z –

+0

noch nicht klar, was Sie – fluter

Antwort

0

Ein Problem ist Ihre char str[100];, die nicht eine Zeichenfolge mit 100 Buchstaben halten kann.

Versuchen:

char str[101];