이을 단축 할 수있는 방법이 있나요?조건부 내부`printf` 문
답변
이 당신을 위해 작동합니다 :
printf("%d", (a > 0? a: -a));
입력/출력 :
5 -> 5
-5 -> 5
약간의 테스트 프로그램 :
#include<stdio.h>
int main() {
int a = -5, b = 5;
printf("%d\n", (a > 0? a: -a));
printf("%d\n", (b > 0? b: -b));
return 0;
}
그리고 그것이 틀렸을 때 텍스트가 참이고 정수이면 어떻게 될까요? – AnDrOiD
@AnDrOiD 무슨 뜻입니까? '텍스트가있는 경우'? 만약 당신이'char []'을 가지고 있다면 placeholder는 false입니다! 또한'정수이면 틀린가'라는 의미인가? – Rizier123
@AnDrOiD : 문자열에 '% d'을 사용할 수 없으므로 다른 * 형식 문자열 *이 필요합니다. (여전히 가능하지만 매우 빨리 읽을 수 있습니다.) – usr2564301
그것은 당신이 absolute value를 가져올 것으로 보인다. int
유형의 당신은 같은 목적을 위해 <stdlib.h>
헤더 abs()
기능을 사용할 수 있습니다
#include <stdio.h>
#include <stdlib.h>
int main(void) {
int a;
a = 3;
printf("%d\n", abs(a));
a = -3;
printf("%d\n", abs(a));
return 0;
}
long int
에 대한 llabs()
(C99) 및 long long int
유형에 대해 각각뿐만 아니라 예를 들어, 부동 소수점 유형도 labs()
있습니다 .
삼항 연산자를 사용하십시오.
printf("%d\n",(a>0) ? a:-a);
조건 true
경우
?
실행한다 후에. 그렇지 않으면
:
이후에 실행됩니다.
'printf ("% d \ n", ((a> 0) - (a <0)) * a),' – BLUEPIXY