2014-12-13 1 views

답변

6

이 당신을 위해 작동합니다 :

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; 

} 
+0

그리고 그것이 틀렸을 때 텍스트가 참이고 정수이면 어떻게 될까요? – AnDrOiD

+1

@AnDrOiD 무슨 뜻입니까? '텍스트가있는 경우'? 만약 당신이'char []'을 가지고 있다면 placeholder는 false입니다! 또한'정수이면 틀린가'라는 의미인가? – Rizier123

+0

@AnDrOiD : 문자열에 '% d'을 사용할 수 없으므로 다른 * 형식 문자열 *이 필요합니다. (여전히 가능하지만 매우 빨리 읽을 수 있습니다.) – usr2564301

2

그것은 당신이 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() 있습니다 .

3

삼항 연산자를 사용하십시오.

printf("%d\n",(a>0) ? a:-a); 

조건 true 경우

은 다음 ? 실행한다 후에. 그렇지 않으면 : 이후에 실행됩니다.