티스토리 뷰
jungol > 문제 > Langauge_Corder > 연산자 - 자가진단 1~4
자가진단 1
드디어 연산자이다 다다다다다
연산자는 + * / - % == ? 등
여러 가지가 있다.
이번 자가진단 1에서 쓸 연산자는
더하기(+)와 나누기(/)이다.
변수 3개를 입력받고
이것들의 합과 평균을 구하는 문제다.
(전에 입력에서 풀었던 것과 매우 비슷하다)
이번에도 소수점은 버림 하여 출력하라고 문제에서 말하고 있기에
(a+b+c)/3의 결과는 %d로 받으면서, 소수점 이하를
버림했다!
소수점 없이 잘 나왔다.
자가진단 2
이번엔 정수형 변수를 두 개 만든 다음 출력하면 된다!
문제에서 b에 10을 나눴을 때의 나머지를 요구하므로
나머지를 구할 수 있는 연산자인 %을 사용했다.
- 12) printf(%d, b%10);
(위는 b를 10으로 나눴을 때의 나머지를 구하는 코드)
% 은 나머지를 구하는 연산자.
ex) 10%2 = 0 17%2 = 1
ex) 1 % 10 = 1 (1÷10 은 몫이 0 나머지가 1이다)
아직까진 매우 쉽다!
자가진단 3
이번 문제는 c언어에서의 덧셈 뺄셈에 관한 문제다.
c언어 덧셈과 뺄셈
a = a + 1; //a값에 1을 더한다
a = a - 1; //a값에 1을 뺀다
a += 1; //a값에 1을 더한다
a -= 1; //a값에 1을 뺀다
a++(후치 연산), ++a(전치 연산)
// a값에 1을 더한다. 그러나 조금 다르다.
a--(후치 연산), a--(전치 연산)
// a값에 1을 뺀다. 그러나 조금 다르다.
전치 연산
전치 연산
ex) int a=0;
int b = 0;
b = ++a;
컴퓨터는 이를 변수 a의 값에 1을 더한 다음 변수 b에 대입한다.
그러므로 a = 1, b = 1이다.
이번 문제는 c언어에서의 덧셈 뺄셈에 관한 문제다.
c언어 덧셈과 뺄셈
후치 연산
ex) int a=0;
int b = 0;
b = a++;
컴퓨터는 이를 변수 a값을 변수 b에 대입한 뒤 변수 a값에 1을 더한다.
그러므로 a = 1, b = 0이다.
문제에선 정수를 입력받고
처음엔 후치 연산을
다음엔 전치 연산을 하고 출력을 하라 했다.
그래서
- 8) printf("%d\n", a++);
- 9) printf("%d\n", ++a);
이렇게 8)엔 후치 연산을
9)에는 전치 연산을 했다.
위 결과를 보면
입력값 : 2 ---> %d에 들어온 값 : 2 ---> 후치연산 3 ---> 전치연산 후 %d에 들어온 값 4
= 를 통한 대입뿐만이 아니라
%d 등 서식지정자가 변수로부터 값을 받을 때도
후치 연산일 경우, 먼저 변숫값이 서식지정자에 간 다음, 후치 연산이 이루어지는 것을 알 수 있다.
재밌었다.
자가진단 4
이번에도 전치 연산과 후치 연산에 관련된 문제다.
입력 예와 출력 예를 보면
10 20 11 19 190
으로 나왔다.
즉 10 * 19 = 190이므로
10은 후치 증가를 20은 전치 감소를 했다.
(물론 문제에서 이미 말해줬다)
변수를 2개 만들고
- 10) c = (a++) * (--b);
각각 후치 증가, 전치 감소를 하면서 곱한 값을 새로운 변수에다가 집어넣었다.
매우 잘 작동한다!
코드
자가진단 1
#include <stdio.h>
int main(void)
{
int a =0;
int b=0;
int c=0;
scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);
printf("sum : %d\n", a+b+c);
printf("avg : %d", (a+b+c)/3);
return 0;
}
자가진단 2
#include <stdio.h>
int main(void)
{
int a =0;
int b=0;
scanf("%d", &a);
scanf("%d", &b);
printf("%d ", a+100);
printf("%d", b%10);
return 0;
}
자가진단 3
+코드+
#include <stdio.h>
int main(void)
{
int a = 0;
scanf("%d", &a);
printf("%d\n", a++);
printf("%d\n", ++a);
return 0;
}
자가진단 4
#include <stdio.h>
int main(void)
{
int a = 0;
int b = 0;
scanf("%d", &a);
scanf("%d", &b);
int c = 0;
c = (a++) * (--b);
printf("%d %d %d\n", a, b, c);
return 0;
}
'c언어 > jungol' 카테고리의 다른 글
c언어 연산자 - 자가진단 7~8 (jungol) (0) | 2022.02.15 |
---|---|
c언어 연산자 - 자가진단 5~6 (jungol) (0) | 2022.02.14 |
c언어 입력 - 형성평가 1~5 (jungol) (0) | 2022.02.12 |
c언어 입력 - 자가진단 7~9 (jungol) (0) | 2022.02.11 |
c언어 입력 - 자가진단 5~6 (jungol) (0) | 2022.02.10 |
- Total
- Today
- Yesterday
- DFS
- java
- 6198
- C++
- 플로이드
- 그래프
- 16120번
- 정렬
- 백준
- Krustal
- 최소 스패닝 트리
- Mo.s
- 누적 합
- 세그먼트 트리
- 카드
- 그리디
- C언어
- 최대공약수
- 1835번
- 덱
- 트리
- 누적합
- 스택
- DP
- 1835
- union
- find
- 6198번
- 오프라인 쿼리
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |