我想写这样的东西;
for (op1 in (plus, minus, times, divby, exponent)) {
printf("%d", a op1 b);
}
所以最终实际执行的是这样的
printf("%d", a + b);
printf("%d", a - b);
printf("%d", a * b);
printf("%d", a / b);
printf("%d", a ^ b);
这个怎么写?
最佳答案
由于您没有发布任何代码,我不会编写任何代码,但很乐意帮助您解决一些概念,您可以将这些概念转化为工作代码。
编写函数来执行单独的操作(加法、减法、乘法等)。
获取 function pointers 的数组,使用您要执行的各个功能对其进行初始化。
遍历数组并将所需的变量传递给函数调用以获得所需的输出。
类似(伪代码)
funcptr arr[SIZE] = { func1, func2, func3... };
for (int i = 0; i < SIZE ; i++) {
printf("%d\n", arr[i](a, b));
}
也就是说,请注意,a ^ b
不是 C 中的“指数” 运算符,正如您可能预料的那样。它是按位异或。您可以使用 pow()
完成这项工作。
仅供引用,可以引用this question获取相关信息。
关于c - 循环操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41322813/