有可能是因为输入缓冲区没有清空,所以没有让用户输入的动作。在scanf("%d",&a);之前做一次清空输入缓冲区的动作应该就会正常了,即调用一次 fflush(stdin);没有输出可能是因为没有遇到换行符,部分编译器是会这样的,要遇到换行才去输出,你可以在return 0;之前输出一次换行,应该就可以了,即调用一次 printf("\n");