c primer plus第八章课后习题第8道
编写程序,显示提供一个加减乘除法的菜单。
题主在做这题的时侯忽略了一个问题:
scanf在读取数值后会把换行符留在输入队列,下次调用函数就会返回这个换行符,导致我们不希望的行为。
解决方法:
第一种方法:
第二种方法:
在包含scanf函数中清理换行符!!!!!
课后习题代码(每个人有每个人的思路,所以答案不唯一)
#include <stdio.h>
#include <ctype.h>
char get_first(void);
char get_choice(void);
float input_num(int n);
int main(void){
char choice;
float n1, n2, n3;
while ((choice = get_choice()) != 'q')
{
if (choice == '\n')continue;
switch (choice)
{
case 'a':
n1 = input_num(0