EYEN
[빡공팟 4기] 2주차: C언어 배우기 코드업 기초 100제(70번 이하)write-up 본문
[빡공팟 4기] 2주차: C언어 배우기 코드업 기초 100제(70번 이하)write-up
EYEN 2022. 5. 1. 06:0044 45 57 59 70 write up.
단, -2147483648 ~ +2147483647 의 범위로 입력된다.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
printf("%lld", ++a);
return 0;
}
입력받을 범위를 문제에서 지정해줬고, 2147483647은 int형으로 입력받을 수 있는 범위니까 int로 받고, 1을 더하면 int형으로 출력할 수 없기 때문에 long long int형으로 지정해서 출력했다.
'++a'라는 증감 연산자를 활용해서 1을 먼저 더한 후 출력했다.
다른 방법은 '++a'대신 'a+1'을 써서 a에 입력받은 값을 저장하고, a+1을 출력하는 방법이 있다.

정수 2개(a, b)를 입력받아 합, 차, 곱, 몫, 나머지, 나눈 값을 자동으로 계산해보자.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("%d \n%d \n%d \n%d \n%d \n%.2f", a + b, a - b, a * b, a / b, a % b, (float)a / b);
return 0;
}
정수형 int로 a,b를 선언하고, 정수형 int로 입력받고 합, 차, 곱, 몫, 나머지는 int로 출력하고, 나눈 값은 실수형으로 나올 수도 있으므로 float으로 출력한다. 소수점 2번째 자리까지 출력해야 하므로 '%. 2f'라고 지정한다. 그리고 대응되는 값 앞에 (float)를 붙여줘야 한다.

참/거짓이 서로 같을 때에만 참이 계산되는 프로그램을 작성해보자.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a, b;
scanf("%d %d", &a, &b);
printf("%d", !((a&&!b)||(!a && b)));
return 0;
}
논리연산자를 활용한다.
논리연산자 예시
1. and=&&
2. or=||
3. not=!
4. xor=(a&&!b)||(!a && b)
a,b 변수 선언하고, 정수형으로 입력받는다. 그 다음 논리연산자로 'a와 b의 진리값이 서로 다르지 않음'을 표현한다. 그러면 a와 b의 진리값이 서로 같으면 1을 출력하고, 서로 다르면 0을 출력한다.

입력 된 정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력해보자.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
printf("%d", ~a);
return 0;
}
비트 연산자를 사용한다. 비트 연산자는 비트 단위에서 연산하는 연산자이다.
not 연산자로 입력받은 변수의 참/거짓을 바꿔 출력한다.
비트 연산자 예
1. and=&
2. or=|
3. xor=^
4. not=~
5. shift=<< />>
6. and 후 할당= '&='
7. or 후 할당= '|='
8. xor 후 할당= '^='
9. not 후 할당= '~='
10. shift 후 할당= '<<=' / '>>='
4비트에서 이진수 예시
+4(0100) -5(1011)
+3(0011) -4(1100)
+2(0010) -3(1101)
+1(0001) -2(1110)
0(0000) -1(1111)
이런 식으로 양의 값을 not 연산한 양의 값과 음의 값이 대응되는 것을 볼 수 있다.

월이 입력될 때 계절 이름이 출력되도록 해보자.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
switch (a)
{
case 12: //case 뒤에는 값이 와야된다. 문자열, 변수, 조건식은 안 된다.
case 1: //case 안에서 변수를 선언할 수 있다.
case 2:
printf("%s", "winter");
break;
case 3:
case 4:
case 5:
printf("%s", "spring");
break;
case 6:
case 7:
case 8:
printf("%s", "summer");
break;
default:
printf("%s", "autumn");
}
return 0;
}
형식이 균일하고 조건이 많을 때 유용한 switch 분기문을 사용한다.
switch 분기문에서는 switch-case-break가 꼭 활용되어야 한다. default는 생략할 수 있다.
변수를 선언하고, 입력은 숫자로 하므로 정수형으로 지정한다. 출력은 문자열로 하므로 문자열형으로 지정한다.

'대외활동 및 팀플 > 빡공팟(P4C) 시스템 해킹 트랙 4기' 카테고리의 다른 글
[빡공팟 4기] 6주차 과제: 어셈블리어로 구구단 구현하기/c로 더블 링크드 리스트 구현하기 (0) | 2022.05.29 |
---|---|
[빡공팟 4기]6주차 과제: 제공된 파일 한장으로 요약 (0) | 2022.05.25 |
[빡공팟 4기] 4~5주차:c로 http 서버 만들기 (0) | 2022.05.22 |
[빡공팟 4기] 3주차: C언어 배우기 코드업 기초 100제(71번~)write-up (0) | 2022.05.08 |
[빡공팟 4기] 1주차: C언어 배우기 코드업 기초 100제(20~30번) write-up (0) | 2022.04.24 |