为什么直接跳过了gets和printf?不理解

img


以下是源代码:
#include
#include
int main(){
int i;
char string[100],copy[100];

for(i=0;;i++){
    printf("print your string: ");
    scanf("%s",string);puts(string);
    for(i=0;i<256;i++){
        strcpy(copy,string);
        if(copy[i] !='0' )
            continue;
         else if(copy[i]=='0'){
            printf("Invalid input!\n");
            break;
        }
    }
    char x[1]="Y",y[1]="N",z[1];
    printf("do you want to continue? choose Yes or No ['Y'or'N']: ");
    gets(z);printf("%s\n",z);
    if(strcmp(x,z)==0)
        continue;
    else if(strcmp(y,z)==0)
        break;
}
printf("Bye.\n");
return 0;

}
output:

img


直接跳过了!!什么意思??

最后一个gets接收了 第一次输入的换行符,所以z是换行符,也就出现了上面那种情况