编程纠错--help others--计算器--又是忘记消除缓存还有函数定义的问题

来源:互联网 发布:mac电脑上的游戏 编辑:程序博客网 时间:2024/04/29 02:18

http://bbs.bccn.net/viewthread.php?tid=433229&page=1&extra=#pid2419992

 

/*显示一个菜单,提供加减乘除选项,选择后程序要求输入2个数,并执行选择的操作*/#include <stdio.h>char get_chioce ();//选择部分void chuli_fir();//第一个数字的处理void chuli_sec();//第二个数字的处理//char get_first(void);void jiafa();//加法void jianfa();//减法void chengfa();//乘法void chufa();//除法float first_n;//第一个数字float second_n;//第二个数字int main (){    char chioce;   //改为char,要对应变量的类型    chioce=get_chioce();//选择    while( (chioce!= 'q'))    {        switch(chioce)        {            case 'a':jiafa();                break;            case 'b':jianfa();                break;            case 'c':chengfa();                break;            case 'd':chufa();                break;        }            }//endof while( (chioce = get_chioce()) != 'q')    printf("再见!\n");        return 0;}//endof mian()char get_chioce(void){    char c;        printf("请选择你的操作:\n");    printf("a.加法\tb.减法\n");    printf("c.乘法\td.除法\n");    printf("q.退出\n");    printf("请输入a、b、c、d或q:");    scanf("%c", &c);    <span style="BACKGROUND-COLOR: #ff0000">getchar();   //作用同楼上的一样,消除缓存,记住对于字符的输入问题,容易将换行键错误的当作字符变量</span>    while( (c<'a' || c>'d') && c!='q')    {        printf("请输入有效的a、b、c、d或q:");        scanf("%c", &c);       <span style="BACKGROUND-COLOR: #ff0000">getchar(); //消除缓存    }</span>    return c;}//endof get_chioec()void chuli_fir()//第一个数字的处理{            printf("请输入第一个数字:");    while(scanf("%f", &first_n) != 1)    {        printf("这不是一个数字,请输入一个数字,如2.5、-1.78E8或3:");        break;    }       }//endof chuli_fir()void chuli_sec()//第二个数字的处理{       printf("请输入第二个数字:");    while(scanf("%f", &second_n) != 1)    {        printf("这不是一个数字,请输入一个数字,如2.5、-1.78E8或3:");    }  }//endof chuli_sec()/*char get_first(void){    int ch;    ch = getchar();    while(getchar() != '\n')        continue;    return ch;}//endof get_first()*/void jiafa()//加法{    chuli_fir();    chuli_sec();    printf("%.2f+%.2f=%.2f\n", first_n, second_n,first_n+second_n);}//endof jiafa()void jianfa()//减法{    chuli_fir();    chuli_sec();    printf("%.2f-%.2f=%.2f\n", first_n, second_n,                             first_n-second_n);}//endof jianfa()void chengfa()//乘法{    chuli_fir();    chuli_sec();    printf("%.2f*%.2f=%.2f\n", first_n, second_n,                             first_n*second_n);}//endof chengfa()void chufa()//除法{    chuli_fir();    chuli_sec();    <span style="BACKGROUND-COLOR: #ff0000">while(second_n==0){ printf("请重新输入第二个数字:");scanf("%f", &second_n);}//稍做改动</span>    printf("%.2f/%.2f=%.2f\n", first_n, second_n,  first_n/second_n);}//endof chufa()


 

0 0
原创粉丝点击