程序4:
#include <stdio.h>
#include <conio.h>
main()
{
int i,j;
char ch;
while(ch=getch()!='\r')
{
i++;
printf("%c",ch);
}
printf("you type %d characters\n",i);
}
改错题
#include <stdio.h>
#include <conio.h>
main()
{
int i=0;
char ch;
while((ch=getch())!='\r')
{
i++;
printf("%c",ch);
}
printf("you type %d characters\n",i);
}
错误一:
while(ch=getch()!='\r')
运算符=的优先级非常低,所以该语句等价于while(ch = (getch()!='\r') )
最终ch会得到0或者1的结果,显然与其本意不符
应改为while((ch=getch())!='\r')
错误二:
int i,j;
main函数中的i未初始化,后面while循环里直接就i++了,其值是不确定的
应改为int i = 0;
另外变量j后面也没有用到,感觉也可以去掉