如图 看到题目N(0~256)N[2,100] 就自然char a[256]错误 解决办法 将a[256] 改为a[260] (一般直接向上取个整个整10、整100,问题不大还省去判断边界) 另需注意的 输入字符串时候 scanf以空白符来进行截断,故用gets()读入N后需要消化掉换行符回车符,否则下面for循环里面会读入这个换行符,第一个字符串会读错!! scanf("%d",&N) 改为scanf("%d\n",&N)或后面使用getchar接受换行符