c语言问题 在线等 简单

来源:百度知道 编辑:UC知道 时间:2024/04/27 23:06:02
要求通过while 循环不断读入字符,当读入字母N时结束循环
while((ch=getchar())!='N')printf("%f",ch)

为什么第一个是对的 =不是赋值吗

(ch=getchar())!='N'

前面括号里面的ch=getchar()是从键盘读取字符,然后进行判断,看看ch是不是'N',如果不是N,就执行循环体语句。这段程序等价于下面的程序:

ch=getchar();
while (ch!='N')
{
printf("%f",ch);/*是否应该为%c ?*/
ch=getchar();
}

对啊 ,就是把你 输入的给ch啊 ,看它是不是等于N

while((ch=getchar())!='N')printf("%f",ch)
应该是:
while((ch=getchar())!='N')printf("%c",ch)

%f是float,%c才是char类型的

#include"stdio.h"
void main()
{
char ch;
printf("input a letter:");
while((ch=getchar())!='N')
{
scanf("%c",&ch);
printf("input a letter:");
printf("%c",ch);
}
}

正因为是赋值才是“=”,而不是“==”。