c小白有个问题求大佬指教

图片说明
图片说明
图片说明
图片说明
第二个程序打开后就是上面这样,一三和书上讲的一样,到底什么时候该添加一个char类型的变量,第一个程序也并没有运用char类型的变量啊,为什么第二个程序编译出来就是错误的
而如果我将最后一个while里的getchar()变成response就只能输入一个值,按下enter后后面就不能再进行输入了

getchar()表示你要再输入一个字符,
第二个程序中第一个while循环中if(getchar()=='n')一句,表示你不得不再输入一个字符,而已经不是上面while中获得的字符了

每调用一次getchar()这个函数,就要从控制台再获取一个字符,因此一三两种写法判断的都是开始时接收到的字符,而你在while循环里多加了一个getchar()的调用就会要求多输入一个字符,这时接收到的应该就是一个空字符了,因此总是匹配不上n这个字符