评论

收藏

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

编程语言 编程语言 发布于:2021-07-21 14:45 | 阅读数:498 | 评论:0

用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[3]={1,2,5};
  int moneyNum[3]={0,0,0};
  int MaxNum[3];
  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[i]=input/moneyList[i];
  int count=0;
  for(int i=1;i<=MaxNum[0];i++){
    for(int j=1;j<=MaxNum[1];j++){
      for(int k=1;k<=MaxNum[2];k++){
        if(i*moneyList[0]+j*moneyList[1]+k*moneyList[2]==input){
          std::cout<<++count<<" RESULT >> "<<i<<" "<<j<<" "<<k<<std::endl;
        }
      }
    }
  }
  return 0;
}


关注下面的标签,发现更多相似文章