输入的格式是x和复合函数序列。例如42hfgf=,并且该hfgf的输出将是2829124。
这就是我目前所掌握的,我不知道如何让它理解它应该计算的顺序。
请帮忙。
#include <stdio.h>
int functionF(int x) {
x = x * x;
return x;
}
int functionG(int x) {
x = x + 1;
return x;
}
int functionH(int x) {
x = x - 1;
return x;
}
int main(int argc, char *argv[]) {
int n;
char function;
int result;
scanf("%d", &n);
scanf(" %c", &function);
while (function != '=') {
if (function == 'f')
functionF(n);
if (function == 'g')
functionG(n);
if (function == 'h')
functionH(n);
scanf("%c", &function);
}
printf("%dn", result);
return 0;
}
传递函数f()
、g()
和h()
的参数"按值;而不是";通过引用"这意味着改变函数中x
的值不会改变main()
中n
的值。
相反,函数应该返回一个值。例如:
int functionF(int x) {
return x * x;
}
然后调用者应该将结果分配给main()
中的n
,如下所示:
if (function == 'f')
n = functionF(n);
并且CCD_ 9得到3115226。如果序列是42 hfgf
,即((42-1(^2+1(^2 ,则得到2829124