动态函数调用实现下列操作,输入2个数以及操作符计算结果。 @ 求最大公约数 $求最小公倍数 - 求差 + 求和 等等
来源:互联网 发布:巨人网络 刘伟 编辑:程序博客网 时间:2024/05/05 19:37
<span style="font-size:18px;">//// main.m// HomeWrokFunctionPointer//// Created by lanouhn on 14-7-30.// Copyright (c) 2014年 Summer. All rights reserved.//#import <Foundation/Foundation.h>//求两个数的差int differenceValue(int x, int y){ return x - y;}//求两个数的和int sumValue(int x, int y){ return x + y;}//求余操作 remainder类型冲突int remainder1(int x, int y){ return x % y;}//求整操作int integer(int x, int y){ return x / y;}//求最大公约数 greatest common divisorint gcdValue(int x, int y){ int temp = 0, gcd = 0; temp = y; if (x < y) { temp = x; } for (int i = 1; i <= temp; i++) { if (x % i == 0 && y % i == 0) { gcd = i; } } return gcd;}//求最小公倍数 lowest common multipleint lcmValue(int x, int y){ int lcm = 0; for (int i = x * y; i > 0; i--) { if (i % x == 0 && i % y == 0) { lcm = i; } } return lcm;}typedef int (*pValue)(int, int);//建立字符和函数间的一一对应关系typedef struct characterFunctionPair{ char character;//存储函数对应的字符 pValue function;//存储字符对应的函数的地址}CharacterFunctionPair;//根据给定的字符查找匹配表,找出对应的函数//character 用来接收匹配的字符串//p 用来接收匹配表//count 用来接收匹配表中元素的个数pValue getFunctionByCharacter(char character, CharacterFunctionPair *p, int count){ //根据输入的内容查匹配表找到对应的函数 for (int i = 0; i < count; i++) { if (character == (p + i)->character) { //如果匹配到对应的函数,将函数地址返回 return (p + i)->function; } } //如果没有匹配到对应的函数,就返回NULL. return NULL;}//根据输入的字符得到对应的函数名,对x, y, 进行操作int getResult(int x, int y, char character, int count,CharacterFunctionPair *p){ int result = 0; //回调函数,得到函数名 pValue compute = getFunctionByCharacter(character, p, count); result = compute(x, y); return result;}int main(int argc, const char * argv[]){ //2.、动态函数调用实现下列操作,输入2个数以及操作符计算结果。 //@ 求最大公约数 $求最小公倍数 //- 求差 + 求和 等等 //创建匹配表 CharacterFunctionPair pair[6] = { {'@', gcdValue}, {'$', lcmValue}, {'+', sumValue}, {'_', differenceValue}, {'%', remainder1}, {'/', integer} }; CharacterFunctionPair *p = NULL; p = pair; int x = 0, y = 0;//存储控制台输入的数字 char str;//存储从控制台输入的字符串 printf("请输入两个数以及操作符计算结果,'@'求最大公约数,'$'求最小公倍数,'-'求差,'+'求和,'/'求整,'%%'求余\n"); scanf("%d%c%d", &x, &str, &y); int result = getResult(x, y, str, 6, p); printf("value = %d\n", result); return 0;}</span>
0 0
- 2.、动态函数调用实现下列操作,输入2个数以及操作符计算结果。 @ 求最大公约数 $求最小公倍数 - 求差 + 求和 等等
- //2.、动态函数调用实现下列操作,输入2个数以及操作符计算结果。@ 求最大公约数 $求最小公倍数 - 求差+ 求和 等等
- 动态函数调用实现下列操作,输入2个数以及操作符计算结果。 @ 求最大公约数 $求最小公倍数 - 求差 + 求和 等等
- //动态函数调用实现下列操作,输入2个数以及操作符计算结果。@ 求最大公约数 $求最小公倍数 - 求差 + 求和 等等
- 动态函数调用实现下列操作,输入2个数以及操作符计算结果@ 求最大公约数 $求最小公倍数 - 求差 + 求和 等等
- 动态函数调用实现下列操作,输入2个数以及操作符计算结果。@ 求最大公约数 $求最小公倍数 - 求差 + 求和 等等
- 动态函数调用实现下列操作,输入2个数以及操作符计算结果。@求最大公约数 $求最小公倍数 -求差 +求和
- 动态函数调用实现下列操作,输入2个数以及操作符计算结果。@最大公约数$最小公倍数+和 -差
- 求2个数的最大公约数和最小公倍数
- 求最大公约数和最小公倍数---调用函数
- C语言之函数调用07—求4个数的最大公约数和最小公倍数
- C语言之函数调用08—暴力法求4个数的最大公约数和最小公倍数
- 调用函数求最大公约数
- 求多个数的最小公倍数或最大公约数
- 求俩个数的最大公约数和最小公倍数
- 求n个数的最小公倍数与最大公约数
- java求多个数的最大公约数,最小公倍数。
- 求多个数的最大公约数和最小公倍数
- SimpleAdapter动态加载Bitmap
- 完美实现淘宝易迅左边菜单树,鼠标over事件显示菜单内容
- android 常用URI 值得记住
- 1.1 C++程序结构 (Structure of a program)
- Spring AOP
- 动态函数调用实现下列操作,输入2个数以及操作符计算结果。 @ 求最大公约数 $求最小公倍数 - 求差 + 求和 等等
- poj 1129
- //动态函数调用实现下列操作,输入2个数以及操作符计算结果。@ 求最大公约数 $求最小公倍数 - 求差 + 求和 等等
- JavaScript判断浏览器类型及版本
- Headmaster's Headache - UVa 10817 状压dp
- 字符串操作&内存操作
- 如何绑定数据联系并操作
- CSS实现强制换行-------Day 78
- ZOJ-1217