C Primer Plus(第六版编程练习)8.11 编程练习 第8题

#include <stdio.h>

float get_number(void);
float charge_number(float t1);

int main(void)
{    
     float t=0.0,t1=0.0,anwser=0.0,tax=0.0;
     char ch='0';
    while(ch!='q')
    {
    printf("Enter the operation of your choice:\n");
    printf("a.add\ts.subtract\n");
    printf("m.multiply\td.divide\n");
    printf("q.quit\n");

    scanf("%c",&ch);

    if(ch=='a'){    
        printf("Enter your first number: ");
        t=get_number();
        printf("Enter your second number: ");
        t1=get_number();
        t1=charge_number(t1);
        anwser= t+t1;
        printf("%f=%f+%f",anwser,t,t1);
        break;}
    else if(ch=='s'){
        printf("Enter your first number: ");
        t=get_number();
        printf("Enter your second number: ");
        t1=get_number();
        t1=charge_number(t1);
        anwser= t-t1;
        printf("%f=%f-%f",anwser,t,t1);
        break;}
    else if(ch=='m'){
        printf("Enter your first number: ");
        t=get_number();
        printf("Enter your second number: ");
        t1=get_number();
        t1=charge_number(t1);
        anwser= t*t1;
        printf("%f=%f*%f",anwser,t,t1);
        break;}
    else if(ch=='d'){
        printf("Enter your first number: ");
        t=get_number();
        printf("Enter your second number: ");
        t1=get_number();
        t1=charge_number(t1);
        anwser= t/t1;
        printf("%f=%f/%f",anwser,t,t1);
        break;}
    else if(ch=='q')printf("bye!\n ");
    else {getchar();
            continue;}
            }
    return 0;
}    

float get_number(void)
{    
    float t;
    char erro;
    while((scanf("%f",&t)!=1))
    {
        while((t=getchar())!='\n')//这里是关键 在循环中读取错误中的单个字符存到t中
        {
            putchar(t); //打印刚才存到的单个字符
        }
        printf(" is not a number.\nPlease enter an number,such as 2.5,-1.78E8,or 3:");
    }    
    return t;
}

float charge_number(float t1)
{
    while(t1==0.0)
    {    
        printf("Enter a number other than 0: ");
        t1=get_number();
    }
    return t1;    
}

相关推荐

  1. C Primer Plus()12.9 编程练习 5

    2024-01-02 19:44:01       28 阅读
  2. C Primer Plus()11.13 编程练习 6

    2024-01-02 19:44:01       23 阅读
  3. C Primer Plus()11.13 编程练习 12

    2024-01-02 19:44:01       35 阅读
  4. C Primer Plus()12.9 编程练习 2

    2024-01-02 19:44:01       27 阅读
  5. C Primer Plus()13.11 编程练习 1

    2024-01-02 19:44:01       28 阅读
  6. C Primer Plus()13.11 编程练习 9

    2024-01-02 19:44:01       33 阅读
  7. C Primer Plus()13.11 编程练习 11

    2024-01-02 19:44:01       30 阅读
  8. C Primer Plus()13.11 编程练习 13

    2024-01-02 19:44:01       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-02 19:44:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-02 19:44:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-02 19:44:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-02 19:44:01       20 阅读

热门阅读

  1. 91 两个数组的交集II

    2024-01-02 19:44:01       37 阅读
  2. 用g2o实现bundle adjustment

    2024-01-02 19:44:01       41 阅读
  3. 94. 二叉树的中序遍历(“颜色标记法”)

    2024-01-02 19:44:01       29 阅读
  4. 企微群发助手:企业微信营销的得力助手

    2024-01-02 19:44:01       42 阅读
  5. Web网页开发-初识web-笔记

    2024-01-02 19:44:01       32 阅读
  6. 如何使用版本控制工具(如Git)进行代码管理?

    2024-01-02 19:44:01       39 阅读
  7. uni-app、H5+ 下载并保存、打开文件

    2024-01-02 19:44:01       58 阅读
  8. 1303:鸣人的影分身

    2024-01-02 19:44:01       36 阅读