唐伯虎 发表于 2021-7-21 14:45:22

用switch语句编程设计一个简单的计算器程序,指定的算术运算符为加(+)、减:将一面额为10元倍数的整钱(<=100元)换成1元、2元和5元的零钱组合(每种面

用switch语句编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:
操作数1 运算符op 操作数2
计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)。
编程要求:程序能进行浮点数的算术运算,有用户输入输出提示信息。
提示:因为除法中的除数不能为0,因此关键在于如何比较浮点变量data2和常数0是否相等。
#include<iostream>
int main(int argc,char**argv){
    double num1;
    double num2;
    char oper;
    std::cin>>num1;
    std::cin>>oper;
    std::cin>>num2;
    if(oper=='/'&&num2<0.0000001){
      perror("num1/num2 num2 is Zero");
      return -1;
    }
    double result=0;
    switch(oper){
      case '+':result=num1+num2;break;
      case '-':result=num1-num2;break;
      case '*':result=num1*num2;break;
      case '/':result=num1/num2;break;
    }
    std::cout<<"RESULT>>"<<result<<std::endl;
    return 0;
}
将一面额为10元倍数的整钱(<=100元)换成1元、2元和5元的零钱组合(每种面值都要有)。输入要换的面额(如10元),输出所有可能的换法(如2种)。
#include<iostream>
int main(int argc,char**argv){
    const int moneyList={1,2,5};
    int moneyNum={0,0,0};
    int MaxNum;
    int input;
    std::cin>>input;
    if(input<=0||input>100||input%10!=0){
      perror("INPUT:ERROR");
      return -1;
    }
    for(int i=0;i<3;i++)
      MaxNum=input/moneyList;
    int count=0;
    for(int i=1;i<=MaxNum;i++){
      for(int j=1;j<=MaxNum;j++){
            for(int k=1;k<=MaxNum;k++){
                if(i*moneyList+j*moneyList+k*moneyList==input){
                  std::cout<<++count<<" RESULT >> "<<i<<" "<<j<<" "<<k<<std::endl;
                }
            }
      }
    }
    return 0;
}



文档来源:51CTO技术博客https://blog.51cto.com/u_15302296/3151881
页: [1]
查看完整版本: 用switch语句编程设计一个简单的计算器程序,指定的算术运算符为加(+)、减:将一面额为10元倍数的整钱(<=100元)换成1元、2元和5元的零钱组合(每种面