|
楼主 |
发表于 2019-8-8 00:53:22
|
显示全部楼层
本帖最后由 bin554385863 于 2019-8-14 00:12 编辑
2019年8月8日00:52:30
函数指针的用法
- #include <iostream>
- using namespace std;
- /*加法 */
- int add(int arg1, int arg2)
- {
- return arg1 + arg2;
- }
- /*乘法 */
- double mult(double arg1, double arg2)
- {
- return arg1 * arg2;
- }
- /*减法 */
- int subt(int arg1, int arg2)
- {
- return arg1 - arg2;
- }
- /*除法 */
- double divi(double arg1, double arg2)
- {
- return arg1 / arg2;
- }
- void calc(int arg1, int arg2)
- {
- double res = 0;
- int (*pcalc)(int, int);
- double (*pcalc_c)(double, double);
- char op;
- cout << "请输入运算式" << endl;
- cin >> arg1>>op>>arg2;
- switch (op)
- {
- case '+':
- pcalc = add;
- res = pcalc(arg1, arg2);
- break;
- case '-':
- pcalc = subt;
- res = pcalc(arg1, arg2);
- break;
- case '*':
- pcalc_c = mult;
- res = pcalc_c(arg1, arg2);
- break;
- case '/':
- pcalc_c = divi;
- res = pcalc_c(arg1, arg2);
- break;
- default:
- break;
- }
- cout << res << endl;
- }
- int main(int argc, char const *argv[])
- {
- int b = 0, c = 0;
- calc(b , c);
- return 0;
- }
复制代码
-----------------------------------------------------------------------------------------------------------------------------------------------------
Windows PowerShell
版权所有 (C) Microsoft Corporation。保留所有权利。
PS E:\Users\86184\Documents\Code> & 'c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.24.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-vxyzpdfk.c0n' '--stdout=Microsoft-MIEngine-Out-nlc2nijy.y3z' '--stderr=Microsoft-MIEngine-Error-exg2ivwk.zjt' '--pid=Microsoft-MIEngine-Pid-phhor1q0.0vm' '--dbgExe=E:\My Program\MinGW\bin\gdb.exe' '--interpreter=mi'
请输入运算式
3 +9
12
PS E:\Users\86184\Documents\Code> & 'c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.24.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-3hgfugpp.4lk' '--stdout=Microsoft-MIEngine-Out-mdgp1rln.unc' '--stderr=Microsoft-MIEngine-Error-cwc0ujp0.sck' '--pid=Microsoft-MIEngine-Pid-vnhjpifc.de1' '--dbgExe=E:\My Program\MinGW\bin\gdb.exe' '--interpreter=mi'
请输入运算式
32*96
3072
PS E:\Users\86184\Documents\Code> & 'c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.24.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-0aqcrvwu.njk' '--stdout=Microsoft-MIEngine-Out-xamzervn.uy0' '--stderr=Microsoft-MIEngine-Error-sx33tg4t.0su' '--pid=Microsoft-MIEngine-Pid-x10t3xb4.5ex' '--dbgExe=E:\My Program\MinGW\bin\gdb.exe' '--interpreter=mi'
请输入运算式
56-98
-42[/color
============================================================================================
- #include <iostream>
- using namespace std;
- /*加法 */
- double add(double arg1, double arg2)
- {
- return arg1 + arg2;
- }
- /*乘法 */
- double mult(double arg1, double arg2)
- {
- return arg1 * arg2;
- }
- /*减法 */
- double subt(double arg1, double arg2)
- {
- return arg1 - arg2;
- }
- /*除法 */
- double divi(double arg1, double arg2)
- {
- return arg1 / arg2;
- }
- void calc(double arg1, double arg2)
- {
- while (1)
- {
- double res = 0;
- double (*pcalc)(double, double);
- char op;
- cout << "请输入运算式" << endl;
- cin >> arg1 >> op >> arg2;
- switch (op)
- {
- case '+':
- pcalc = add;
- res = pcalc(arg1, arg2);
- break;
- case '-':
- pcalc = subt;
- res = pcalc(arg1, arg2);
- break;
- case '*':
- pcalc = mult;
- res = pcalc(arg1, arg2);
- break;
- case '/':
- pcalc = divi;
- res = pcalc(arg1, arg2);
- break;
- default:
- break;
- }
- cout << arg1 << op << arg2 << '=' << res << endl;
- }
- }
- int main(char argc, char const *argv[])
- {
- int b = 0, c = 0;
- calc(b, c);
- return 0;
- }
复制代码
----------------------------------------------------------------------------------------------------------------------
PS E:\Users\86184\Documents\Code> & 'c:\Users\86184\.vscode\extensions\ms-vscode.cpptools-0.24.1\debugAdapters\bin\WindowsDebugLauncher.exe' '--stdin=Microsoft-MIEngine-In-alch3axa.k5g' '--stdout=Microsoft-MIEngine-Out-20tna1oi.b2f' '--stderr=Microsoft-MIEngine-Error-gxxl5wak.ars' '--pid=Microsoft-MIEngine-Pid-bf3fmh1m.cx1' '--dbgExe=E:\My Program\MinGW\bin\gdb.exe' '--interpreter=mi'
请输入运算式
23+63
23+63=86
请输入运算式
63*98
63*98=6174
请输入运算式
63/54
63/54=1.16667
请输入运算式
87-96
87-96=-9
请输入运算式
|
|