为什么';这个C代码不能打印一个负整数吗?
我是C语言的初学者,我使用的是“C编程-现代方法”一书。 我在这本书里做了一个练习。但我不明白为什么我填写负数时,这段代码不打印负数。 也许我遗漏了一点细节,或者只是一些愚蠢的事情,所以请帮帮我。 代码如下:为什么';这个C代码不能打印一个负整数吗?,c,C,我是C语言的初学者,我使用的是“C编程-现代方法”一书。 我在这本书里做了一个练习。但我不明白为什么我填写负数时,这段代码不打印负数。 也许我遗漏了一点细节,或者只是一些愚蠢的事情,所以请帮帮我。 代码如下: #include <stdio.h> int main(void) { int i; printf("Vul een negatief getal in: "); scanf("%d", &i); printf("%d\n", i
#include <stdio.h>
int main(void)
{
int i;
printf("Vul een negatief getal in: ");
scanf("%d", &i);
printf("%d\n", i >= 0 ? i : -i);
system("pause");
return 0;
}
#包括
内部主(空)
{
int i;
printf(“vuleen negatief getal in:”);
scanf(“%d”、&i);
printf(“%d\n”,i>=0?i:-i);
系统(“暂停”);
返回0;
}
谢谢你,因为你有一个
三元取绝对值。它可以扩展到
if (i >= 0) {
printf("%d\n", i);
} else {
printf("%d\n", -i);
}
因为你在这里有一个
三元取绝对值。它可以扩展到
if (i >= 0) {
printf("%d\n", i);
} else {
printf("%d\n", -i);
}
printf(“%d\n”,i>=0?i:-i)代码>
- 如果您输入一个正数(或零),例如
5
它将打印i
即5
- 如果输入负数,例如
-5
,它将打印-i
,即-5
,即5
如果您不熟悉三元运算符,请参见其工作原理:
CONDITION ? EXPR_TRUE : EXPR_FALSE
它测试条件
,如果true
则计算EXPR\u true,否则计算EXPR\u FALSE
就你而言:
i >= 0 ? i : -i
如果i>=0
或-i
否则产生i
。printf(“%d\n”,i>=0?i:-i)代码>
- 如果您输入一个正数(或零),例如
5
它将打印i
即5
- 如果输入负数,例如
-5
,它将打印-i
,即-5
,即5
如果您不熟悉三元运算符,请参见其工作原理:
CONDITION ? EXPR_TRUE : EXPR_FALSE
它测试条件
,如果true
则计算EXPR\u true,否则计算EXPR\u FALSE
就你而言:
i >= 0 ? i : -i
如果i>=0,则产生i
,否则产生-i
。因为i>=0?i:-i
如果i>=0,例如i=3,则打印3
如果i<0,例如i=-3,则打印-(-3)=3
所以,虽然有时我是-ve,但打印输出对您来说永远不是-ve。因为i>=0?i:-i
如果i>=0,例如i=3,则打印3
如果i<0,例如i=-3,则打印-(-3)=3
因此,虽然有时我是-ve,但打印输出对您来说永远不是-ve。aaah我没有想到五个括号!非常感谢。啊,我没有想到五个括号里的那些!非常感谢。