&zfc[i++]
你循环中没有改变i的值啊
do while语句换成下面的:
while ((ch = getchar()) != '\n')
{
zfc[i++] = ch;
}
zfc[i]= 0;
供参考:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int i,c;
char zfc[100],ch;
i=0;
do{
scanf("%c",&zfc[i]);
}while(zfc[i++]!='\n');
c=i-1;
if(c > 10)
{
printf("BAD");
}
else
{
printf("GOOD");
}
return 0;
}