学c第一个bug搞不懂

这是为什么有人能解答一下吗

img


书上的代码
运行正常如图

img

我凭记忆写出来的代码

img

运行出了大毛病,太邪乎了哈哈哈 如图

img

顺便能解答一下getchar 和putchar的作用吗,为什么输入了有时候输不出额

C!=0写成了C=!0,这完全是另一个意思了。!=是不等于的意思,C=!0这是固定给C赋值为1
另外第一个c=getchar()要放到循环外面,不然第一次循环c没有赋值,第二次循环c赋值了两次

第八行放到while前面
while中的0用单引号引起来

瞎写吧奥
首先你 c是int 后期乱码
c =!0 死循环
getputget 输入一个输出一个输入一个 导致每两个字符输出一次
get就是输入一个字符
put输出一个字符