在学习 C 语言时,我遇到了一些完全让我困惑的事情。
表达式为:
exp(V*log(i))?i%2?s:s--:s++;
如果三元运算符是问题?正:负;我认为它是这样的:
if(pow(i,V)==1&&(i%2)==0)
s--;
else
s++;
但是,s没有进入问题,我应该问第一个表达式是什么意思吗?
该程序运行良好,但我不明白为什么。
原程序是:
main(){
#define V 1
int a, s=0, i;
for(i=1000;i>=0;i--)
exp(V*log(i))?i%2?s:s--:s++;
exp(V*log(i))?printf("%d\t%d\t",-s,i):printf("%d\t%d\t", s,-i);
getch();
}
最佳答案
如果 exp(Vlog(i)) 为 true 则测试是否为奇数 i%2==1 如果为偶数则返回 s-- if exp(Vlog(i )) 为 false 返回 s++ 如果你这样写就更容易看到:
exp(V*log(i))?(i%2?s:s--):s++;
关于C 三元运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30904865/