为什么最后一个scanf函数加了“\n”就要多输入一组数据才结束输入,按多少次Enter都没用,而且前两个有“\n”最后一个没有就不会出现这种情况

img

scanf("%d\n")的时候,scanf需要按照格式输入一个回车,但是在使用scanf读取数字类型的时候,回车符只用来刷新缓存,并且回车符被忽略掉,所以只能多输入一个数字+回车符,来告诉编译器,已经输入了回车。
单独输入回车符的时候,所有输入的回车符都被忽略掉了。

你想要简单就能输入数字,那就用%d,但是同时你只能接受它的死板,不那么智能
如果你想定制化的以某个特殊符号作为结尾,那就自己写%s接收字符串,然后从字符串里找到你想要的数字和换行