这个程序运行结果显然不对,发生这种错误的原因是因为数据没有被正确输入,先看看是怎么输入数据的。当程序提示输入数据时,首先输入一个整型数4,紧接着输入回车,然后输入数据9.程序就结束了。输入的整型数4被scanf函数正确读入,然而输入的回车却被scanf函数用c格式符都给了变量character。
这说明在用%c格式符读入字符时,空格字符和转义字符(包括回车和制表符)都会作为有效字符输入。
以上为解决方法之一,也是较好的方法。
即在%c前面加一个空格,将前面的数据输入时存于缓冲区中的回车符读入,避免被后面的字符型变量作为有效字符读入。
还有一种方法就是用函数getchar()将前面数据输入是存入缓冲区的回车符读入,避免被后面的字符型变量作为有效字符读入。
就程序的可读性而言,第一种方法较好。