如果这是非常初级的,我深表歉意,但我刚开始在学校编程,我已经到处寻找解决方案,不幸的是,没有什么能帮助我解决这个问题。我有这段代码:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int logic(int a, int b)
{
int c = a % b;
a++;
b--;
printf("==%d %d %d==\n", a, b, c);
return b + a + c;
}
int main()
{
int a, c;
float d, f;
a = 10;
c = 5;
f = 2;
d = logic(a, logic(c, f));
printf("%d %d %.2f %.2f\n", a, c, d, f);
return 0;
}
现在的输出是:
'== 6 1 1==
==11 7 2==
10 5 20.00 2.00'
现在的问题是关于上面的逻辑函数,该行是如何'd = logic(a, logic(c, f));'
编译的。我假设要获得第一个输出,逻辑函数为 c 和 f 取 5 和 2 的值,并通过 a 和 b 的函数运行它。但我完全不知道为什么下一个输出是'==11 7 2=='
. return'c + b + a;'
到底做了什么,当我用逗号替换 + 运算符时,只有输出中的第一个值(无论我放置变量的顺序如何,都是 11)出现,其余的都是 0。
请帮助解决这个问题,我非常难过,已经做了几个小时,但仍然一无所获。