字符串输入输出,改了很多遍还是错了,想知道哪错了


#include
int main()
{
    int numble=0;
    int count=0;
    char str[10001]={'\0'};
    int len=0;
    while(scanf("%s",str)!=EOF);
    int max=str[0];
    for(int i=0;str[i]!='\0';i++)
    {
       if(str[i]>max)
     {
        max=str[i];
        numble=i;
     }
    }
    printf("%c",max);
    for(int i=0;str[i]!='\0';i++)
    {
     if(str[i]==max)
     {
      count++;
     }
    }
    printf("%d",count);
    }

//

img

供参考:

#include <stdio.h>
int main()
{
    int  cnt, i = 0;
    char str[10001] = { 0 }, max;
    while ((str[i] = getchar()) != EOF) i++;
    str[i] = '\0';     //gets(str);
    for (max = str[0], cnt = 0, i = 0; str[i] != '\0'; i++)
    {
        if (str[i] == max)
            cnt++;
        else if (str[i] > max) {
            max = str[i];
            cnt = 1;
        }
    }
    printf("%d", cnt);
    return 0;
}

while(scanf("%s",str)!=EOF);这是干啥?

#include<stdio.h>
int main()
{
    int count=0,n=0;
    char str[10001]={'\0'};
    char c,max=0;
    while((c=getchar()) != EOF)
    {
        str[n] = c;
        if(c>max)
        {
            max=c;
        }
        n++;
    }
    for(int i=0;i<n;i++)
    {
        if(str[i]==max)
        {
            count++;
        }
    }
    printf("%d",count);
    return 0;
}

while(scanf("%s",str)!=EOF);//这里加了分号,要去掉

最终代码:

 
#include<stdio.h>
int main()
{
    int numble=0;
    int count=0;
    char str[10001]={'\0'};
    int len=0;
    while(scanf("%s",str)!=EOF){
        int max=str[0];
        for(int i=0;str[i]!='\0';i++)
        {
               if(str[i]>max)
             {
                max=str[i];
                numble=i;
             }
        }
        printf("%c ",max);
        for(int i=0;str[i]!='\0';i++)
        {
             if(str[i]==max)
             {
                  count++;
             }
        }
        printf("%d",count);
    }
}
 
//