动态函数调用实现下列操作,输入2个数以及操作符计算结果@ 求最大公约数 $求最小公倍数 - 求差 + 求和 等等
2014-07-31 09:21
411 查看
<span style="font-size:24px;">//求最大公约数 int greatestDivisorOfTwo(int x, int y){ int min = x < y ? x : y; int i = 0; for (int i = min; i > 0; i--) { if (x % i == 0 && y % i == 0) { break; } } return i; } //求最小公倍数 int leastMultipleOfTwo(int x, int y ){ int m = greatestDivisorOfTwo( x, y);//函数内部调用求最大公约数的函数 return x * y % m; } //求差 int differenceOfTwo(int x, int y){ return x - y; } //求和 int sumNumberOfTwo(int x, int y){ return x + y; } //函数指针类型重定义 typedef int(*pF)(int,int);//用来指向上面的函数 typedef struct operation { char symbol;//存储运算符 pF function; }Operation; //根据输入的内容查找匹配表中的函数,结构体,有返回值 pF getFunctionBySymol(char temp, Operation *oper, int count){ for (int i = 0; i < count; i++) { if (temp == (oper + i) ->symbol) { return (oper + i)->function;//返回表中对应的函数 } } return NULL; } int slove(int a, int b, char temp, Operation *pOp,int count){//接收字符,整型常量不用指针,只需要和实参类型一样的行参 pF function = getFunctionBySymol(temp, pOp, count);//函数调用,指向这个函数 int m = function(a, b); return m; } //输出计算值 //void calculate() int main(int argc, const char * argv[]) { //动态函数调用实现下列操作,输入2个数以及操作符计算结果。 //@ 求最大公约数 $求最小公倍数 // - 求差 + 求和 等等 //运算符与函数匹配表 Operation operate[4] = { {'@', greatestDivisorOfTwo}, {'$', leastMultipleOfTwo}, {'-', differenceOfTwo}, {'+', sumNumberOfTwo} }; int a = 0; int b = 0; char c = ' '; printf("请输入两个数和运算符:(@求最大公约数,$求最小公倍数- 求差,+求和)"); //把字符放到前面,因为空格也是一个字符,当把字符放到后边的时候,因为输入的数和字符要用空格隔开,此时,这个空格会默认为要输入的字符,从而无法运行,但是两个整型变量之间的空格是为了区分两个整型变量,因为先输整型常量,在第一个整型常量输完之后第二个也是为一个整型常量,所以没有影响 scanf("%c" , &c); scanf("%d%d", &a,&b); //2) getchar(); // scanf("%c",&c); printf("%d\n", slove(a, b, c, operate, 4)); </span>
相关文章推荐
- 2.、动态函数调用实现下列操作,输入2个数以及操作符计算结果。 @ 求最大公约数 $求最小公倍数 - 求差 + 求和 等等
- 动态函数调用实现下列操作,输入2个数以及操作符计算结果。 @ 求最大公约数 $求最小公倍数 - 求差 + 求和 等等
- 动态函数调用实现下列操作,输入2个数以及操作符计算结果。@ 求最大公约数 $求最小公倍数 - 求差 + 求和 等等
- //2.、动态函数调用实现下列操作,输入2个数以及操作符计算结果。@ 求最大公约数 $求最小公倍数 - 求差+ 求和 等等
- 动态函数调用实现下列操作,输入2个数以及操作符计算结果。@求最大公约数 $求最小公倍数 -求差 +求和
- //动态函数调用实现下列操作,输入2个数以及操作符计算结果。@ 求最大公约数 $求最小公倍数 - 求差 + 求和 等等
- 动态函数调用实现下列操作,输入2个数以及操作符计算结果。@最大公约数$最小公倍数+和 -差
- awk实现求和、平均、最大值和最小值的计算操作
- salesforce零基础学习(八十)使用autoComplete 输入内容自动联想结果以及去重实现
- 树的基本结构,以及利用链表实现树的各项操作(创建、添加/删除/打印树节点、销毁等等)
- awk实现求和、平均、最大值和最小值的计算操作
- shell基础:使用read、命令行脚本传参实现输入2个整数并计算
- awk实现求和、平均、最大值和最小值的计算操作
- /*分别求出俩个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果,俩个整数由键盘输入!?????怎么写,,求注释!??!*/
- java实现输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head
- awk实现求和、平均、最大值和最小值的计算操作
- awk实现求和、平均、最大值和最小值的计算操作
- 输写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。
- 2.Java手动输入10个数字,并对它们进行 奇偶数分类、平均値计算、求和操作。
- (c++)写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。