闹心的代码,各位大神看看代码为什么错了
先上题:输入一串字符,判断将其中最短的字符输出,如果最短字符有多个就输出第一个,例如:happy new year haa;
输出:mew;
这是代码:
# include <stdio.h>
# include <string.h>
int main()
{
int i,j=0,x,y,a[100]={0},b[100],u;
char str[100];
gets(str);
u=strlen(str);
for (i=0;i<u;i++)
{
if (str[i]!=' ')
a[j]++;
else
{b[j]=i;j++;}
}
for (i=0;i<100;i++)
if(a[i]>0)
{
for(x=0;x<100;x++)
{if (a[i]>a[x])
break;
else if (x==99)
y=i;}
}
for (i=b[y]-a[y];i<=b[y]-1;i++)
printf("%c",str[i]);
return 0;
}
可是当我运行时候居然显示运行错误,无语,特来求教