이 문제, 대여섯번 틀려서 코드를 계속 수정했다.
결국엔 오타 문제였고, 작성한 코드는 전부 정상이었다.
#include <stdio.h>
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a==b&&b==c)
{ printf("%d",a*1000+10000); }
else if(a==b||b==c||a==c)
{
if(a==b){ printf("%d",a*100+1000); }
else { printf("%d",c*100+1000); }
}
else
{ printf("%d",((a<b?b:a)<c?c:(a<b?b:a))*100); }
}
중간에 else if(a==b||b==c||a==c) 내부 if문은 a와 b만 우선 비교하면 된다. 나머지는 b==c 또는 a==c이기 때문에 c 값으로 계산해서 출력했다.
맨 마지막 삼항연산자
- printf( "%d", ((a<b?b:a)<c?c:(a<b?b:a)) * 100 );
이 부분을 차례대로 쪼개서 보면 (a<b?b:a)는 a보다 b가 크면 b를 반환하고 아니면 a를 반환한다.
이걸 한 번 더 감싸서 c와 비교하고 c가 더 크면 c를 반환, 아니면 이전 항의 연산을 다시 수행해서 a나 b중 하나의 값을 반환한다.
반응형
'컴퓨터 > C, C++' 카테고리의 다른 글
[C/C++] 백준 3052번 C언어 (0) | 2022.05.14 |
---|---|
[C/C++] 백준 2562번 배열_최댓값 (0) | 2022.03.18 |
[C/C++] 코드업 알고리즘 1106번 문제 - C언어 (0) | 2022.01.07 |
[C/C++] 코드업 알고리즘 1098번 문제 - C언어 (0) | 2022.01.06 |
[C/C++] 코드업 알고리즘 1025번 문제 - C언어 (0) | 2021.12.14 |
댓글