进来小看一眼,这个bug实在是....谢了
先说题目:输入一串字符找到最短的字符并输出,并且如果最短字符有多个,只输出第一个;
上代码:
程序代码:
#include<stdio.h> #include<string.h> int main() { char a[100]; int d[100],i,j,k,h,u,zhi=0,flag=0,min=1000,b[50],gg,zhen; gets(a); u=strlen(a); b[0]=0; for(i=0,k=0;i<u;i++){ if(a[i]!=' '){ flag++; d[k]=flag; } else if(a[i]==' '){ k++; b[k]=flag+1; flag=0; } } for(j=0;j<k;j++){ if(min>d[j]) {min=d[j];h=b[j];} } for(gg=h;gg<min+h;gg++){ printf("%c",a[gg]); } printf("\n"); printf("%d %d %d",min,h,k); return 0; }问题来了,输入happy new year
i love you
都没有问题,就是输入who am i时输出的居然是am!!!!!!
这道题已经AC了,但是没有意义,求指导,,,,