• C++初学(1) 简单的加减乘除取余运算代码


      1 //---------------+-*/%算法----------------------------------------------------------
      2 #include <iostream>
      3 using namespace std;
      4 // 函数原型声明
      5 int Add(int e1, int e2);
      6 int Sub(const int*pe1, const int*pe2);
      7 int Mul(const int&re1, const int&re2);
      8 int Div(int e1, int e2)throw(int); // 分母不能为0,否则抛出除0错
      9 int Mod(int e1,int e2)throw(int,long); //分子 分母不能为0,否则抛出无意义错或除0错
     10 
     11 void main() {
     12     int e1, e2, result;
     13     char optr;
     14 
     15     while (true) {
     16         cout <<
     17         "Please type in an expression which likes a @b,type 'q' to quit" << endl;
     18         cin >> optr;
     19         if (optr == 'q' || optr == 'Q')
     20             break; // 结束循环
     21         cin.putback(optr); // 将读入的字符退回到流中,让它可以被重新读入
     22         cin >> e1;
     23         cin >> optr;
     24         cin >> e2;
     25 
     26         switch(optr) {
     27         case '+':
     28             result = Add(e1, e2);
     29             break;
     30         case '-':
     31             result = Sub(&e1, &e2);
     32             break;
     33         case '*':
     34             result = Mul(e1, e2);
     35             break;
     36         case '/':
     37             result = Div(e1, e2);
     38             break;
     39         case '%':
     40             result = Mod(e1, e2);
     41             break;
     42         }
     43     }
     44     system("pause");
     45 }
     46 
     47 int Add(int e1, int e2) {
     48     int result = e1 + e2;
     49     cout << '=' << result << endl;
     50     return result;
     51 }
     52 
     53 int Sub(const int *pe1, const int *pe2) {
     54     int result = *pe1 - *pe2; // 指针指向的内存地址里面存的数值相减
     55     cout << '=' << result << endl;
     56     return result;
     57 }
     58 
     59 int Mul(const int &re1, const int &re2) {
     60     int result = re1 * re2;
     61     cout << '=' << result << endl;
     62     return result;
     63 }
     64 
     65 int Div(int e1, int e2)throw(int) {
     66     try {
     67         if (e2 == 0)
     68             throw 0;
     69         int result = e1 / e2;
     70         cout << '=' << result << endl;
     71         return result;
     72     }
     73     catch(int) {
     74         cout << "Denominator cannot be zero" << endl;
     75     }
     76 
     77 }
     78 
     79  int Mod(int e1,int e2)throw(int,long)
     80 {
     81     try
     82     {
     83         if(e1==0)
     84             throw int(0);
     85         if(e2==0)
     86             throw long(0);
     87 
     88         int result=e1%e2;
     89         cout << '=' << result << endl;
     90         return result;
     91     }
     92         catch(int)
     93         {
     94         cout<<"It doesn't make sense when numerator is zero"<<endl;
     95         }
     96         catch(long)
     97         {
     98         cout<<"Denominator cannot be zero"<<endl;
     99         }
    100 }
  • 相关阅读:
    解决Warning: mysql_connect(): Headers and client library minor version mismatch. 警告
    读取微博feed伪代码
    [待续]不为人知的PHP-SPL标准库
    封装pyMysql
    捉“客”记
    实现小程序插件自定义导航栏
    圆形与矩形的碰撞检测--Mr.Ember
    mpvue原理分析
    webpack学习--Mr.Ember
    原型链、继承--Mr.Ember
  • 原文地址:https://www.cnblogs.com/qiwu1314/p/7099116.html
Copyright © 2020-2023  润新知