코딩 공부
<Codeup 61-70> 코드업 문제풀이 본문
1061 [기초-비트단위논리연산] 비트단위로 OR하여 출력하기
문제 풀이: 정수 두개를 비트단위로 or 연산하는건 정수 각각의 비트단위에서 둘 중 하나라도 1인 자리를 1로 만들어주는 것과 같다. or 연산을 하려면 비트단위 연산자 중 하나인 | 파이프연산자를 사용한다.
#include <stdio.h>
int main()
{
int a, b; //a와 b를 정수형으로 저장한다
scanf("%d %d", &a, &b); //a와 b값을 입력받는다
printf("%d", a|b); //a와 b를 비트단위로 or연산 한다
return 0;
}
1062 [기초-비트단위논리연산] 비트단위로 XOR하여 출력하기
문제 풀이: 정수 두개를 비트단위로 xor연산하는건 정수 각각의 비트단위에서 값이 다른것만 1로 만들어주는거다. xor 연산을 하려면 비트단위 연산자 중 하나인 ^을 사용한다.
#include <stdio.h>
int main()
{
int a, b; //a와 b를 정수형으로 저장한다
scanf("%d %d", &a, &b); //a와 b값을 입력받는다
printf("%d", a^b); //a와 b를 비트단위로 xor연산한다
return 0;
}
1063 [기초-삼항연산] 두 정수 입력받아 큰 수 출력하기
3항 연산자: "조건식 ? (참일 때의 값) : (거짓일 때의 값)"의 형태로 사용하는 연산자이다. if 조건문을 짧게 표현할 수 있는 장점이 있다.
문제 풀이: 삼항 연산자를 사용해서 a와 b 중 더 큰 수를 출력한다.
#include <stdio.h>
int main()
{
int a, b; //a와 b를 정수형으로 저장한다
scanf("%d %d", &a, &b); //a와 b값을 입력받는다
printf("%d", a>b? a:b); // a가 b보다 크면 a를 출력하고 아니면 b를 출력한다
return 0;
}
1064 [기초-삼항연산] 정수 3개 입력받아 가장 작은 수 출력하기
문제 풀이: 삼항연산자를 중첩하여 사용한다. 삼항연산자를 중첩하는것은 조건문을 중첩하는 것 같이 쓰일 수 있다. 세 정수 중 가장 작은 정수를 찾으려면 a와 b를 먼저 비교해 더 작은 수를 c에 비교하면 된다.
#include <stdio.h>
int main()
{
int a, b, c; //a, b 와 c를 정수형으로 저장한다
scanf("%d %d %d", &a, &b, &c); //a, b 와 c 값을 입력받는다
printf("%d", (a<b? a:b)<c?(a<b? a:b):c); //a와 b값중 작은 값이 c보다 작으면 a와 b 중 작은 값을 출력하고 아니면 c를 출력한다
return 0;
}
1065 [기초-조건/선택실행구조] 정수 3개 입력받아 짝수만 출력하기
문제 풀이: 조건문을 사용해서 세 정수 중 짝수만 출력한다. 짝수란 2로 나눴을때 나머지가 0인 수다. 이를 사용하여 조건문을 쓴다.
#include <stdio.h>
int main()
{
int a, b, c; //a, b, c 를 정수형으로 저장한다
scanf("%d %d %d", &a, &b, &c); //a, b, c값을 입력받는다
if(a%2 == 0) //a를 2로 나눈 나머지가 0일시 아래 { }안 코드가 실행된다
{
printf("%d\n", a); //a를 출력하고 줄바꿈을 한다
}
if(b%2 == 0) //b를 2로 나눈 나머지가 0일시 아래 { }안 코드가 실행된다
{
printf("%d\n", b); //b를 출력하고 줄바꿈을 한다
}
if(c%2 == 0) //c를 2로 나눈 나머지가 0일시 아래 { }안 코드가 실행된다
{
printf("%d\n", c); //c를 출력하고 줄바꿈을 한다
}
return 0;
}
1066 [기초-조건/선택실행구조] 정수 3개 입력받아 짝/홀 출력하기
문제 풀이: 조건문인 if와 else문을 둘다 사용하여 2로 나눈 나머지가 0일시 "even"을 출력하고 아니면 "odd"를 출력한다
#include <stdio.h>
int main()
{
int a, b, c; //a, b, c를 정수형으로 저장한다
scanf("%d %d %d", &a, &b, &c); //a, b, c 값을 입력받는다
if(a%2 == 0) //a를 2로 나눈 나머지가 0일시 아래 { }안 코드가 실행된다
{
printf("%s\n", "even"); //even을 출력하고 줄바꿈을 한다
}
else //a를 2로 나눈 나머지가 0이 아닐시 아래 { }안 코드가 실행된다
{
printf("%s\n", "odd"); //odd를 출력하고 줄바꿈을 한다
}
if(b%2 == 0) //b를 2로 나눈 나머지가 0일시 아래 { }안 코드가 실행된다
{
printf("%s\n", "even"); //even을 출력하고 줄바꿈을 한다
}
else //b를 2로 나눈 나머지가 0이 아닐시 아래 { }안 코드가 실행된다
{
printf("%s\n", "odd"); //odd를 출력하고 줄바꿈을 한다
}
if(c%2 == 0) //c를 2로 나눈 나머지가 0일시 아래 { }안 코드가 실행된다
{
printf("%s\n", "even"); //even을 출력하고 줄바꿈을 한다
}
else //c를 2로 나눈 나머지가 0이 아닐시 아래 { }안 코드가 실행된다
{
printf("%s\n", "odd"); //odd를 출력하고 줄바꿈을 한다
}
return 0;
}
*문제에서 나온것 처럼 코드블록의 내용이 1개라면 { }을 생략해도 된다
#include <stdio.h>
int main()
{
int a, b, c;
scanf("%d%d%d", &a, &b, &c);
if(a%2 == 0)
printf("even\n");
else printf("odd\n");
if(b%2 == 0)
printf("even\n");
else printf("odd\n");
if(c%2 == 0)
printf("even\n");
else printf("odd\n");
return 0;
}
1067 [기초-조건/선택실행구조] 정수 1개 입력받아 분석하기
문제 풀이: 조건문을 사용하여 정수의 plus/minus와 even/odd를 구분하여 출력한다.
#include <stdio.h>
int main()
{
int a; //a를 정수형으로 저장한다
scanf("%d", &a); //a의 값을 입력받는다
if(a >= 1) //a가 1이랑 같거나 크면 (=1이 양수) 아래 코드를 실행한다
printf("plus\n"); //"plus"를 출력하고 줄바꿈을 한다
else //a가 1이랑 같거나 크지않으면 (=1이 음수) 아래 코드를 실행한다
printf("minus\n"); //"minus"를 출력하고 줄바꿈을 한다
if(a%2 == 0) //a를 2로 나눈 나머지가 0이면 아래 코드를 실행한다
printf("even\n"); //"even"을 출력하고 줄바꿈을 한다
else //a를 2로 나눈 나머지가 0이 아니면 아래 코드를 실행한다
printf("odd\n"); //"odd"를 출력하고 줄바꿈을 한다
return 0;
}
1068 [기초-조건/선택실행구조] 정수 1개 입력받아 평가 출력하기
문제 풀이: 조건문을 사용해서 점수를 입력받아 평가를 출력한다.
#include
int main()
{
int a; //a를 정수값으로 저장합니다
scanf("%d", &a); //a값을 저장받습니다
if(a >= 90) //a가 90보다 크거나 같을 시
printf("A\n"); //A를 출력합니다
else if(a >= 70) //a가 70보다 크거나 같을 시 (90보다는 작고)
printf("B\n"); //B를 출력합니다
else if(a >= 40) //a가 40보다 크거나 같을 시 (70보다는 작고)
printf("C\n"); //C를 출력합니다
else //a가 40보다 낮으면
printf("D\n"); //D를 출력합니다
return 0;
}
1069 [기초-조건/선택실행구조] 평가 입력받아 다르게 출력하기
switch문: switch문은 if문과 같이 조건 제어문에 속하나 부등식을 사용할 수 없다. if문은 조건식이 true일 경우에 블록이 실행되지만 switch문은 비교할 변수의 값에 따라 실행문이 선택된다. (==만 비교가능) 이 switch문 안에는 정수값만 가능하고 이 문제에서 입력받는 문자는 아스키코드 정수값으로 저장될 수 있기에 가능하다.
문제 풀이: 문자 A, B, C, D를 입력받아 정해진 문자열을 출력한다.
#include <stdio.h>
int main()
{
char a; //a를 문자형으로 저장한다
scanf("%c", &a); //a값을 입력받는다
switch(a) //변수 a의 값에 따라 아래 코드블록이 실행된다
{
case'A': //a가 'A'일시
printf("best!!!\n"); //best!!!를 출력합니다
break; //switch문을 나갑니다
case'B'://a가 'B'일시
printf("good!!\n"); //good!!을 출력합니다
break; //switch문을 나갑니다
case'C'://a가 'C'일시
printf("run!\n"); //run!을 출력합니다
break; //switch문을 나갑니다
case'D'://a가 'D'일시
printf("slowly~\n"); //slowly~를 출력합니다
break; //switch문을 나갑니다
default: //a가 A, B, C, D 가 아닐시
printf("what?\n"); //what?을 출력합니다
}
return 0;
}
1070 [기초-조건/선택실행구조] 월 입력받아 계절 출력하기
문제 풀이: switch().. case ... break; 을 사용해서 월이 입력됬을때 계절을 출력한다.
#include <stdio.h>
int main()
{
int a; //a값을 정수형으로 저장한다
scanf("%d", &a); //a값을 입력받는다
switch(a) //변수 a의 값에 따라 아래 코드블록이 실행된다
{
case 12: //a가 12일시
case 1: //a가 1일시
case 2: //a가 2일시
printf("winter"); //winter를 출력한다
break; //switch문을 나갑니다
case 3: //a가 3일시
case 4: //a가 4일시
case 5: //a가 5일시
printf("spring"); //spring를 출력한다
break; //switch문을 나갑니다
case 6: //a가 6일시
case 7: //a가 7일시
case 8: //a가 8일시
printf("summer"); //summer를 출력한다
break; //switch문을 나갑니다
case 9: //a가 9일시
case 10: //a가 10일시
case 11: //a가 11일시
printf("fall"); //fall를 출력한다
break; //switch문을 나갑니다
}
return 0;
}
'codeup 기초 100제' 카테고리의 다른 글
<Codeup 21-30> 코드업 문제 풀이 (0) | 2019.12.09 |
---|---|
<Codeup 11-20> 코드업 문제풀이 (0) | 2019.12.09 |
<Codeup 51-60> 코드업 문제풀이 (0) | 2019.12.06 |
<Codeup 41-50> 코드업 문제풀이 (0) | 2019.12.06 |
<Codeup 1-10> 코드업 문제풀이 (0) | 2019.12.05 |