计蒜客T1122最长最短单词,找不到坑在哪

空格问题,逗号问题都考虑到了,就是不给过,实在找不到坑在哪,求大神来解答

描述
输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。

试输出第1个最长的单词和第1个最短单词。 

输入
一行句子。

输出
两行输出:
第1行,第一个最长的单词。
第2行,第一个最短的单词。

样例输入

I am studying Programming language C in Peking University

样例输出

Programming
I

代码:

#include <stdio.h>
#include <string.h>
int main(){
    char x[200000],y,z;   //y为最大单词的起始地址        z为最小单词的起始地址
    gets(x);
    int i,count,max=-1,min=101;
    for(i=0;i<strlen(x);i++)
    {
            count=0;        //单词长度置为0
            while(x[i]!=' '&&x[i]!='\0'&&x[i]!=',')  //当字符不为空格 逗号 和 \0时词长度加一
            {
                count++;
                i++;
            }
            if(count>max)   //如果单词长度大于max就替换
            {
                max=count;      
                y=i-count;      //同时把该单词的开始地址记为y
            }

            if(count<min&&count!=0)  //如果单词长度小于min就替换
            {
                min=count;
                z=i-count;          //同时把该单词的开始地址记为z
            }
    }
     for(i=y;x[i]!=' '&&x[i]!='\0'&&x[i]!=',';i++)   //最大单词输出
        printf("%c",x[i]);
    printf("\n");
    for(i=z;x[i]!=' '&&x[i]!='\0'&&x[i]!=',';i++)   //最小单词输出
        printf("%c",x[i]);
    return 0;
}

你可以把逗号全部替换成空格,这样的只需要按照空格去截取字符串,获取每个字符串的长度,然后比较就可以了

坑就坑在你定义的y和z是char