세 자리를 입력받아 자릿수에 따라
같으면 3, 두자리 수만 같으면 2, 모두 다르면 1을 출력하는 프로그램을 작성하세요!
물론 단번에 코드를 본다면 좋기야 하겠지만 장기적으로 봤을때
혼자풀어보기 -> 힌트 -> 코드보기 순으로 공부하시는게 실력 향상에 큰 도움이 됩니다!
힌트를 보고 천천히 생각을 거쳐서 문제를 풀어보시고
답안을 확인해보세요
코드힌트
더보기
조건
관계연산자 (a==b a!=b)와 논리연산자( && ||)와 괄호를 이용하시오
세자리 구분하기
세 자리를 분리해야 하는데
몫을 구하는 /, 나머지 값을 구하는 %를 이용하면 쉽게 작성할 수 있습니다.
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의 실행문이 시작되는 시스템입니다.
#include<stdio.h>
int main(){
int input,a,b,c;
scanf("%d",&input);
a = //첫번째숫자
b = //두번째숫자
c = //세번째숫자
//모두 같은 경우 3룰 출력합니다.
//a==b이면 a!=c인 경우 2 출력 a==c이면서 a!=b인경우 2를 출력합니다. b==c 이면서 a!=c인 경우 2를 출력합니다.
//모두 다른 경우 1을 출력합니다.
}
답안코드
더보기
#include<stdio.h>
int main(){
int input,a,b,c;
scanf("%d",&input);
a = input/100; //첫번째 숫자
b = input%100/10; //두번째 숫자
c = input%10; //세번째 숫자
((a==b)&&(b==c))?printf("%d",3):printf(""); //모두 같은 경우 3룰 출력합니다.
(((a==b)&&(a!=c)) || ((a==c) && (a!=b)) || ((b==c) && (a!=c)))?printf("%d",2):printf(""); //a==b이면 a!=c인 경우 2 출력 a==c이면서 a!=b인경우 2를 출력합니다. b==c 이면서 a!=c인 경우 2를 출력합니다.
((a!=b)&&(b!=c) &&(a!=c))?printf("%d",1):printf(""); //모두 다른 경우 1을 출력합니다.
}
더 많은 C언어 글이 궁금하다면?
https://chuinggun.tistory.com/category/C%EC%96%B8%EC%96%B4
'C언어' 카테고리의 다른 글
[C언어]세 자리 양의 정수 한 개를 입력 받아 각 자리수 중에서 최대값을 출력하시오. (0) | 2020.04.07 |
---|---|
[C언어]4자리 양수를 입력받은 후 그 수를 뒤집은 숫자와의 차의 절대값을 출력하는 프로그램을 작성하시오. (0) | 2020.04.07 |
[C언어] 연도를 입력받고, 해당 연도가 윤년인지 평년인지를 판단하는 프로그램을 작성하시오. 논리연산자 관계연산자만을 이용 (0) | 2020.04.07 |
[C언어]알파벳 문자 한 개를 입력 받고 입력 받은 문자가 소문자이면 대문자로 바꾸어 출력하고, 대문자이면 그대로 출력하시오 (0) | 2020.04.07 |
[c언어] 구구단 출력하기 (0) | 2020.04.06 |
댓글