scanf("%d",&n);之后在缓冲区中会遗留一个字符'\n'(回车的作用),如果不把这个字符取走,就会对后面的gets()函数读取字符串有影响,这里的scanf("%c",&c);就是取走这个字符。还可以用fflush(stdin);来清空缓冲区,而不是像这里一样只读取一个字符。