본문 바로가기
C언어

[C언어]세 자리 양의 정수 한 개를 입력 받아 각 자리수 중에서 최대값을 출력하시오.

by 이얏호이야호 2020. 4. 7.

물론 단번에 코드를 본다면 좋기야 하겠지만 장기적으로 봤을때

혼자풀어보기 -> 힌트 -> 코드보기 순으로 공부하시는게 실력 향상에 큰 도움이 됩니다!

힌트를 보고 천천히 생각을 거쳐서 문제를 풀어보시고

답안을 확인해보세요

코드힌트

더보기

조건

1. 각 자리수는 서로 다르다고 가정한다. 즉 112혹은 232같은 수는 입력되지않는다.

 2. 관계연산자(a>b)와 논리연산자(&&)와 괄호를 이용하시오

3.  if사용 X

 

  • 세자리 구분하기

세 자리를 분리해야 하는데  

몫을 구하는 /, 나머지 값을 구하는 %를 이용하면 쉽게 작성할 수 있습니다.

ex) 235 / 100 = 2   ,  235 % 100 /10 = 3 ,    235 % 10 = 5

를 이용하세요!

  • 논리연산자

> , <  부등호를 나타냅니다 

a > b a가 더 크다

a < b b가 더 크다

a && b a와 b모두(둘 중 모두를 만족해야 ok)

a || b a 이거나 b이거나(둘 중하나만 만족해도 ok)

  • 관계연산자

조건? 참인경우 : 거짓인경우;

조건을 만족하는 경우는 a의 실행문이 시작되고

조건을 만족하지 못하는 경우 b의 실행문이 시작되는 시스템입니다.

 

결과
결과1

기본틀입니다!

#include<stdio.h>

int main(){

 int input , a, b, c,max;

 scanf("%d",&input);

 a = //몫을 이용하여 첫번째 숫자 a구하기

 b =  //몫, 나머지 값을 이용하여 두번째 숫자 b구하기

 c = //나머지 값을 이용하여 세번째 숫자 c구하기

//a가 가장 크다면 max = a;

//b가 가장 크다면 max = b;

//c가 가장 크다면 max = c;

 printf("%d",max);
  

}

 

 

 

 

답안코드

더보기
#include<stdio.h>

int main(){

 int input , a, b, c,max;

 scanf("%d",&input);

 a = input/100; //몫을 이용하여 첫번째 숫자 a구하기

 b = input%100/10; //몫, 나머지 값을 이용하여 두번째 숫자 b구하기

 c = input%10; //나머지 값을 이용하여 세번째 숫자 c구하기

 (a>b)&&(a>c)?max=a:printf(""); //a가 가장 크다면 max = a;

 (b>a)&&(b>c)?max=b:printf(""); //b가 가장 크다면 max = b;

 (c>a)&&(c>b)?max=c:printf(""); //c가 가장 크다면 max = c;

 printf("%d",max);

  

}

 

 

 

 

더 많은 C언어 글이 궁금하다면?

https://chuinggun.tistory.com/category/C%EC%96%B8%EC%96%B4

 

댓글