์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- Reversing
- ๋ฌ์คํธ
- ์๋ฐ ๊ธฐ์ด
- ํ์ด์ฌ ์๊ณ ๋ฆฌ์ฆ
- ์๊ณ ๋ฆฌ์ฆ
- ์ค๋ผํด
- ์ด์์ฒด์
- ์ฐ๋ถํฌ
- java
- Rust
- ๋ฐ์ดํฐ ํต์
- ํ์ด์ฌ ์ฑ๋ฆฐ์ง
- data communication
- ์๋ฐ ๊ฐ๋
- ํ์ด์ฌ ์ฒผ๋ฆฐ์ง
- Python challenge
- ๋ฐฑ์ค ๋ฌ์คํธ
- ubuntu
- ๋ฌ์คํธ ํ๋ก๊ทธ๋๋ฐ ๊ณต์ ๊ฐ์ด๋
- ๋ฌ์คํธ ์์
- OS
- Python
- C
- Operating System
- ์ค๋ผํดDB
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- Database
- ์๋ฐ
- ํ์ด์ฌ
- ๋ฐฑ์ค
- Today
- Total
IT’s Portfolio
[C] ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ - Day 1 ๋ณธ๋ฌธ
๐ป ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ - Day 1
ํธ์ ์ค๋น๋ก ์ธํ ๊ธฐ์ด ๋ค์ง๊ธฐ ๊ธฐ๋ก Start!
๐ค ๊ธฐ๋ณธ ์๊ณ ๋ฆฌ์ฆ
1๏ธโฃ ์๊ณ ๋ฆฌ์ฆ์ด๋?
์ธ ๊ฐ์ ์ต๋๊ฐ
#include <stdio.h>
int main(void) {
int a, b, c, max;
printf("์ธ ์ ์์ ์ต๋๊ฐ์ ๊ตฌํฉ๋๋ค.\n");
printf("a: "); scanf("%d", &a);
printf("b: "); scanf("%d", &b);
printf("c: "); scanf("%d", &c);
max = a;
if(b>max) max = b;
if(c>max) max = c;
printf("์ธ ์ ์์ ์ต๋๊ฐ์ %d์
๋๋ค.\n", max);
return 0;
}
- 3๊ฐ์ ์ ์ ๊ฐ ๊ฐ์ด๋ฐ ์ต๋๊ฐ ๊ตฌํ๊ธฐ
1. max์ a ๊ฐ ๋์
2. b ๊ฐ์ด max๋ณด๋ค ํฌ๋ฉด max์ b ๊ฐ ๋์
3. c ๊ฐ์ด max๋ณด๋ค ํฌ๋ฉด max์ c ๊ฐ ๋์
- ์ต๋๊ฐ์ ๊ตฌํ๋ ๊ณผ์
- ์ธ ๋ฌธ์ฅ์ด ์๋๋ก ๋๋ํ ์๋ค๋ฉด ์ด ๋ฌธ์ฅ์ ์์๋๋ก ์คํ๋จ
- ์ฌ๋ฌ ๋ฌธ์ฅ(ํ๋ก์ธ์ค)์ด ์์ฐจ ์คํ๋๋ ๊ตฌ์กฐ -> ์์ฐจ์ (concatenation) ๊ตฌ์กฐ
- ์์ ํ๊ฐ ๊ฒฐ๊ณผ์ ๋ฐ๋ผ ํ๋ก๊ทธ๋จ์ ์คํ ํ๋ฆ์ ๋ณ๊ฒฝํ๋ if๋ฌธ -> ์ ํ(selection) ๊ตฌ์กฐ
int max = a;
- ๋ณ์๋ฅผ ๋ง๋๋ ์์ ์ ๊ฐ์ ๋ฃ๋ ์ด๊ธฐํ
max = a;
- ์ด๋ฏธ ๋ง๋ค์ด์ ธ ์๋ ๋ณ์์ ๊ฐ์ ๋ฃ๋ ๋์
- ์ธ ๋ฌธ์ฅ์ด ์๋๋ก ๋๋ํ ์๋ค๋ฉด ์ด ๋ฌธ์ฅ์ ์์๋๋ก ์คํ๋จ
- ์์๋(flowchart)
#include <stdio.h>
int max3(int a, int b, int c) {
int max = a;
if(b>max) max = b;
if(c>max) max = c;
return max;
}
int main(void) {
printf("max3(%d, %d, %d) = %d\n", 3, 2, 1, max3(3, 2, 1));
printf("max3(%d, %d, %d) = %d\n", 3, 2, 2, max3(3, 2, 2));
printf("max3(%d, %d, %d) = %d\n", 3, 2, 3, max3(3, 2, 3));
printf("max3(%d, %d, %d) = %d\n", 6, 7, 2, max3(6, 7, 2));
return 0;
}
- ์ธ ๊ฐ์ ์ต๋๊ฐ์ ํจ์๋ก ์ฒ๋ฆฌ
- ํจ์ํธ์ถ์์ ํ๊ฐํ๋ฉด ํจ์์ ๋ฐํ๊ฐ์ ์ป์ ์ ์์
- ๋ฐํ๊ฐ์ ์๋ฃํ์ด void์ธ ํจ์๋ ๊ฐ์ ๋ฐํํ์ง ์์
- ํจ์ํธ์ถ์์ ํ๊ฐํ๋ฉด ํจ์์ ๋ฐํ๊ฐ์ ์ป์ ์ ์์
์ค์๊ฐ
#include <stdio.h>
int med3(int a, int b, int c) {
if(a>=b)
if(b>=c) return b;
else if(a<=c) return a;
else return c;
else if(a>c) return a;
else if(b>c) return c;
else return b;
}
int main(void) {
int a, b, c;
printf("์ธ ์ ์์ ์ค์๊ฐ์ ๊ตฌํฉ๋๋ค.\n");
printf("a: "); scanf("%d", &a);
printf("b: "); scanf("%d", &b);
printf("c: "); scanf("%d", &c);
printf("์ค์๊ฐ: %d\n", med3(a, b, c));
return 0;
}
- ์ค์๊ฐ์ ๊ตฌํ๋ ์ ์ฐจ: ํต ์ ๋ ฌ(Quicksort)
์กฐ๊ฑด ํ๋จ๊ณผ ๋ถ๊ธฐ
#include <stdio.h>
int main(void) {
int n;
printf("์ ์ ์
๋ ฅ: "); scanf("%d", &n);
// ...
if(n>0) printf("์์\n"); // 1
else if(n<0) printf("์์\n"); // 2
else printf("0\n"); // 3
// ...
return 0;
}
// ...
๋ก ์ธ์ฌ์ง ๋ถ๋ถ์์ ์คํ๋๋ ๋ถ๋ถ์ 1, 2, 3 ์ค ํ๋๋ฟ์ด๋ฉฐ ๋ ๊ฐ์ง๊ฐ ๋์์ ์คํ๋๊ฑฐ๋ ํ๋๋ ์คํ๋์ง ์๊ฑฐ๋ ํ๋ ๊ฒฝ์ฐ๋ ์์- ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ด ์ธ ๊ฐ์ง๋ก ๋ถ๊ธฐํ๊ธฐ ๋๋ฌธ
- ์์๋
์์๋์ ๊ธฐํธ
์ฐ์ฐ์์ ํผ์ฐ์ฐ์
- ์ฐ์ฐ์(operator): ์ฐ์ฐ์ ์ํํ๋ ๊ธฐํธ
- ํผ์ฐ์ฐ์(operand): ์ฐ์ฐ์ ๋์์ด ๋๋ ์
b > max
์์ ์ฐ์ฐ์๋>
์ด๊ณ , b์ max๋ ํผ์ฐ์ฐ์
๋จํญ ์ฐ์ฐ์(unary operator) ... ํผ์ฐ์ฐ์๊ฐ 1๊ฐ(a++)
2ํญ ์ฐ์ฐ์(binary operator) ... ํผ์ฐ์ฐ์๊ฐ 2๊ฐ(a<b)
3ํญ ์ฐ์ฐ์(ternary operator) ... ํผ์ฐ์ฐ์๊ฐ 3๊ฐ(a?b:c)
์(expression)
๋ณ์
์์
๋ณ์๋ ์์๋ฅผ ์ฐ์ฐ์๋ก ๊ฒฐํฉํ ๊ฒ
x=n+135
- ๋ณ์ x์ n์ intํ
x
,n
,135
,n+135
,x=n+135
๋ ๋ชจ๋ ์
- xx์ฐ์ฐ์์ ํผ์ฐ์ฐ์๊ฐ ๊ฒฐํฉํ ์ -> xx์
- ๋์
์ฐ์ฐ์์ ์ํด
x
์n+135
๊ฐ ๊ฒฐํฉ๋ ์ -> ๋์ ์(assignment expression)
- ๋์
์ฐ์ฐ์์ ์ํด
์์ ํ๊ฐ
- ํ๋ก๊ทธ๋จ์ ์คํํ ๋ ์์ด ํ๊ฐ๋จ
- ๋ชจ๋ ์์์๋ ๊ฐ์ด ์์ผ๋ฉฐ ๊ทธ ๊ฐ์ ํ๋ก๊ทธ๋จ์ ์คํํ ๋ ํ์ธํ ์ ์์
- ํ๊ฐ(evaluation): ์์ ๊ฐ์ ์์๋ด๋ ๊ฒ
๊ด๊ณ ์ฐ์ฐ์์ ๋ฑ๊ฐ ์ฐ์ฐ์
- ์ผ์ชฝ๊ณผ ์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์์ ๋์ ๊ด๊ณ๋ฅผ ํ๋จํ๋ ๊ด๊ณ ์ฐ์ฐ์
<, <=, >, >=
- ๊ฐ์ด ๊ฐ์์ง์ ๊ด๊ณ๋ฅผ ํ๋จํ๋ ๋ฑ๊ฐ ์ฐ์ฐ์
==, !=
- ์ฐธ์ด๋ฉด intํ 1, ๊ฑฐ์ง์ด๋ฉด intํ 0
๋งค๊ฐ๋ณ์(parameter) ๋๋ ํ์ ๋งค๊ฐ๋ณ์(foraml parameter)
- ํจ์๋ฅผ ์ ์ํ ๋ ํจ์์ ์ ๋ฌ๋๋ ๊ฐ์ ์ ์ฅํ๊ธฐ ์ํ ๋ณ์(variable)
- ํจ์๋ฅผ ์ ์ํ ๋๋ ๋งค๊ฐ๋ณ์, ํจ์๋ฅผ ํธ์ถํ ๋๋ ์ค์ธ์(actual argument)
์๊ณ ๋ฆฌ์ฆ(algorithm)
๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๊ฒ์ผ๋ก, ๋ช ํํ๊ฒ ์ ์๋๊ณ ์์๊ฐ ์๋ ์ ํ ๊ฐ์ ๊ท์น์ผ๋ก ์ด๋ฃจ์ด์ง ์งํฉ
์ธ ๊ฐ์ ๋์ ๊ด๊ณ
- ๊ฒฐ์ ํธ๋ฆฌ(decision tree)
- ์ธ ๊ฐ์ ๋์ ๊ด๊ณ์ ์กฐํฉ์ 13๊ฐ์ง ์ข ๋ฅ
- ์กฐํฉ์ ๋์ดํ ๋ชจ์์ด ๋๋ฌด ํํ
์กฐ๊ฑด ์ฐ์ฐ์
- 3๊ฐ์ ํผ์ฐ์ฐ์๋ฅผ ๊ฐ๋ 3ํญ ์ฐ์ฐ์๋ฅผ ์กฐ๊ฑด ์ฐ์ฐ์(conditional operator) ๋ผ๊ณ ํจ
?, :
min a<b?a:b;
- ๋ณ์ min์ ๋์ ๋๋ ๊ฐ์ a๊ฐ b๋ณด๋ค ์์ผ๋ฉด a, ๊ทธ๋ ์ง ์์ผ๋ฉด b
์ฐ์ต๋ฌธ์
Q1. ๋ค ๊ฐ์ ์ต๋๊ฐ์ ๊ตฌํ๋ ํจ์ max4๋ฅผ ์์ฑํ๋ผ
Q2. ์ธ ๊ฐ์ ์ต์๊ฐ์ ๊ตฌํ๋ min3 ํจ์๋ฅผ ์์ฑํ๋ผ
Q3. ๋ค ๊ฐ์ ์ต์๊ฐ์ ๊ตฌํ๋ min4 ํจ์๋ฅผ ์์ฑํ๋ผ
#include <stdio.h>
int max4(int a, int b, int c, int d) {
int max = a;
if(b>max) max = b;
if(c>max) max = c;
if(d>max) max = d;
return max;
}
int min3(int a, int b, int c) {
int min = a;
if(b<min) min = b;
if(c<min) min = c;
return min;
}
int min4(int a, int b, int c, int d) {
int min = a;
if(b<min) min = b;
if(c<min) min = c;
if(d<min) min = d;
return min;
}
int main(void) {
printf("max4(%d, %d, %d, %d) = %d\n",
15, 18, 4, 7, max4(15, 18, 4, 7));
printf("min3(%d, %d, %d) = %d\n",
15, 18, 4, min3(15, 18, 4));
printf("min4(%d, %d, %d, %d) = %d\n",
15, 18, 4, 7, min4(15, 18, 4, 7));
return 0;
}
Q4. ์ธ ๊ฐ์ ๋์ ๊ด๊ณ 13์ข ๋ฅ์ ๋ชจ๋ ์กฐํฉ์ ๋ํด ์ค์๊ฐ์ ๊ตฌํ์ฌ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ
#include <stdio.h>
int med3(int a, int b, int c) {
if(a>=b)
if(b>=c) return b;
else if(a<=c) return a;
else return c;
else if(a>c) return a;
else if(b>c) return c;
else return b;
}
int main(void) {
int a, b, c;
printf("med3(%d, %d, %d) = %d\n", 3, 2, 1, med3(3, 2, 1)); // a>b>c
printf("med3(%d, %d, %d) = %d\n", 3, 2, 2, med3(3, 2, 2)); // a>b=c
printf("med3(%d, %d, %d) = %d\n", 3, 1, 2, med3(3, 1, 2)); // a>c>b
printf("med3(%d, %d, %d) = %d\n", 3, 2, 3, med3(3, 2, 3)); // a=c>b
printf("med3(%d, %d, %d) = %d\n", 2, 1, 3, med3(2, 1, 3)); // c>a>b
printf("med3(%d, %d, %d) = %d\n", 3, 3, 2, med3(3, 3, 2)); // a=b>c
printf("med3(%d, %d, %d) = %d\n", 3, 3, 3, med3(3, 3, 3)); // a=b=c
printf("med3(%d, %d, %d) = %d\n", 2, 2, 3, med3(2, 2, 3)); // c>a=b
printf("med3(%d, %d, %d) = %d\n", 2, 3, 1, med3(2, 3, 1)); // b>a>c
printf("med3(%d, %d, %d) = %d\n", 2, 3, 2, med3(2, 3, 2)); // b>a=c
printf("med3(%d, %d, %d) = %d\n", 1, 3, 2, med3(1, 3, 2)); // b>c>a
printf("med3(%d, %d, %d) = %d\n", 2, 3, 3, med3(2, 3, 3)); // b=c>a
printf("med3(%d, %d, %d) = %d\n", 1, 2, 3, med3(1, 2, 3)); // c>b>a
return 0;
}
Q5. ์ค์๊ฐ์ ๊ตฌํ๋ ํจ์๋ ๋ค์๊ณผ ๊ฐ์ด ์์ฑํ ์๋ ์์. ๊ทธ๋ฌ๋ med3.c์์์ med3 ํจ์์ ๋นํด ํจ์จ์ด ๋จ์ด์ง๋๋ฐ, ๊ทธ ์ด์ ์ค๋ช ํ๋ผ
int med3(int a, int b, int c) {
if((b>=a&&c<=a)||(b<=a&&c>=a)) return a;
else if((a>b&&c<b)||(a<b&&c>b)) return b;
return c;
}
- My Answer: med3.c์ med3 ํจ์๋ ๋ง์ผ๋ฉด 4๋ฒ์ ์กฐ๊ฑด์ ์ ๊ฑธ๋ฆฌ๋๋ฐ ํด๋น ํจ์๋ ๋ฌด์กฐ๊ฑด 4๋ฒ์ ์กฐ๊ฑด์ ์ ๊ฑธ๋ฆฌ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ ์ผ๋ก ๋ถ๋ฆฌํ๋ค.
/*
์ฒซ if ๋ฌธ์ ๋ค์ ํ์ ์ ์ฃผ๋ชฉํฉ๋๋ค.
if ((b >= a && c<= a) || (b <= a && c >= a)
์ฌ๊ธฐ์ b>=a ๋ฐ b<=a์ ํ์ ์ ๋ค์ง๋ ํ์ (์ค์ง์ ์ผ๋ก ๋์ผํ ํ์ )์ด, ๋ค์ด์ else ์ดํ์ ๋ค์๊ณผ ๊ฐ์ด ์ํ๋ฉ๋๋ค.
else if ((a > b && c < b) || (a < b && c > b)
์ฆ, ์ฒซ ๋ฒ์งธ if ๋ฌธ์ด ์ฑ๋ฆฝ๋์ง ์์ ๊ฒฝ์ฐ, ๋ ๋ฒ์งธ if ๋ฌธ์์๋ (์ค์ง์ ์ผ๋ก) ๊ฐ์ ํ์ ์ ํ๋ฏ๋ก ํจ์จ์ด ๋๋น ์ง๋๋ค.
*/
- Correct Answer
2๏ธโฃ ๋ฐ๋ณต
1๋ถํฐ N๊น์ง์ ์ ์ ํฉ ๊ตฌํ๊ธฐ - while๋ฌธ ๋ฐ๋ณต
#include <stdio.h>
int main(void) {
int i=1, n;
int sum=0;
printf("1๋ถํฐ n๊น์ง์ ํฉ์ ๊ตฌํฉ๋๋ค.\n");
printf("n ์
๋ ฅ: "); scanf("%d", &n);
while(i<=n) {
sum+=i;
i++;
}
printf("1๋ถํฐ %d๊น์ง์ ํฉ: %d\n", n, sum);
return 0;
}
while(์ ์ด์) ๋ช
๋ น๋ฌธ
- ๋ฐ๋ณต(repetition) ๊ตฌ์กฐ or ๋ฃจํ(loop): ์ด๋ค ์กฐ๊ฑด์ด ์ฑ๋ฆฝํ๋ ๋์ ์ฒ๋ฆฌ(ํ๋ก๊ทธ๋จ ๋ช ๋ น๋ฌธ ๋๋ ๋ช ๋ น์ด์ ์งํฉ)๋ฅผ ๋ฐ๋ณตํ์ฌ ์คํํ๋ ๊ฒ
- while๋ฌธ์ ์คํ ์ ์ ๋ฐ๋ณต์ ๊ณ์ํ ์ง๋ฅผ ํ๋จํจ -> ์ฌ์ ํ๋จ ๋ฐ๋ณต ๊ตฌ์กฐ
- ์ ์ด์์ ํ๊ฐ๊ฐ์ด 0์ด ์๋๋ฉด ํ๋ก๊ทธ๋จ ๋ช ๋ น๋ฌธ์ด ๊ณ์ ๋ฐ๋ณต๋จ
- ์์๋
1๋ถํฐ N๊น์ง์ ์ ์ ํฉ ๊ตฌํ๊ธฐ - for๋ฌธ ๋ฐ๋ณต
#include <stdio.h>
int main(void) {
int n;
int sum=0;
printf("1๋ถํฐ n๊น์ง์ ํฉ์ ๊ตฌํฉ๋๋ค.\n");
printf("n ์
๋ ฅ: "); scanf("%d", &n);
for(int i=1; i<=n; i++) {
sum+=i;
}
printf("1๋ถํฐ %d๊น์ง์ ํฉ: %d\n", n, sum);
return 0;
}
for(์1; ์2; ์3) ๋ช
๋ น๋ฌธ
- ํ๋์ ๋ณ์๋ฅผ ์ฌ์ฉํ๋ ๋ฐ๋ณต๋ฌธ์ while๋ฌธ๋ณด๋ค for๋ฌธ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ํฉํจ
- ์1์ ๋ฐ๋ณต์ ์คํํ๊ธฐ ์์ ์ฒ์ ํ ๋ฒ๋ง ์คํ๋จ
- ์ ์ด์์ธ ์2๋ฅผ ํ๊ฐํ ๊ฐ์ด 0์ด ์๋๋ฉด ๋ฃจํ ๋ณธ๋ฌธ์ด ๋ฐ๋ณตํ์ฌ ์คํ๋จ
- ์3์ด ํ๊ฐ, ์คํ๋จ
- ์์๋
์์๋ง ์ ๋ ฅํ๊ธฐ
#include <stdio.h>
int main(void) {
int n, sum=0;
printf("1๋ถํฐ n๊น์ง์ ํฉ์ ๊ตฌํฉ๋๋ค.\n");
do {
printf("n ์
๋ ฅ: "); scanf("%d", &n);
} while(n<=0);
for(int i=1; i<=n; i++) {
sum+=i;
}
printf("1๋ถํฐ %d๊น์ง์ ํฉ: %d\n", n, sum);
return 0;
}
do๋ฌธ while(์ ์ด์);
- do๋ฌธ์ ์ผ๋จ ๋ฃจํ ๋ณธ๋ฌธ์ ํ ๋ฒ ์คํํ ๋ค์ ๊ณ์ ๋ฐ๋ณตํ ๊ฒ์ธ์ง๋ฅผ ํ๋จํ๋ ์ฌํ ํ๋จ ๋ฐ๋ณต๋ฌธ
- ์ ์ด์์ ํ๊ฐํ ๊ฐ์ด 0์ด ์๋๋ฉด ๋ฃจํ ๋ณธ๋ฌธ์ ๋ช ๋ น๋ฌธ์ด ๋ฐ๋ณต๋จ
- ์์๋
๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ(structured programming)
- ํ๋์ ์
๊ตฌ์ ํ๋์ ์ถ๊ตฌ๋ฅผ ๊ฐ์ง ๊ตฌ์ฑ ์์๋ง์ ๊ณ์ธต์ ์ผ๋ก ๋ฐฐ์นํ์ฌ ํ๋ก๊ทธ๋จ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ
- ์์ฐจ, ์ ํ, ๋ฐ๋ณต์ด๋ผ๋ 3์ข ๋ฅ์ ์ ์ด ํ๋ฆ ์ฌ์ฉ
๋ค์ค ๋ฃจํ
#include <stdio.h>
int main(void) {
for(int i=1; i<=9; i++) {
for(int j=1; j<=9; j++)
printf("%3d ", i*j);
putchar('\n');
}
}
- ์์๋
๋ ผ๋ฆฌ ์ฐ์ฐ๊ณผ ๋๋ชจ๋ฅด๊ฐ ๋ฒ์น
#include <stdio.h>
int main(void) {
int n;
do {
printf("2์๋ฆฌ ์ ์ n ์
๋ ฅ: "); scanf("%d", &n);
} while(n<10||n>99);
printf("n = %d\n", n);
return 0;
}
x&&y
: ๋ ผ๋ฆฌ๊ณฑ(and)- ๋ ๋ค ์ฐธ์ด๋ฉด ์ฐธ
x||y
: ๋ ผ๋ฆฌํฉ(or)- ํ๋๋ผ๋ ์ฐธ์ด๋ฉด ์ฐธ
- ๋
ผ๋ฆฌ ์ฐ์ฐ์์ ๋จ์ถ ํ๊ฐ(short circuit evaluation)
- ๋ ผ๋ฆฌ ์ฐ์ฐ์ ์ ์ ์ฒด๋ฅผ ํ๊ฐํ ๊ฒฐ๊ณผ๊ฐ ์ผ์ชฝ ํผ์ฐ์ฐ์์ ํ๊ฐ ๊ฒฐ๊ณผ๋ง์ผ๋ก ์ ํํด์ง๋ ๊ฒฝ์ฐ ์ค๋ฅธ์ชฝ ํผ์ฐ์ฐ์์ ํ๊ฐ๋ฅผ ์ํํ์ง ์๋ ๊ฒ
x&&y์ !(!x||!y)๋ ๋์ผํ๋ค
x||y์ !(!x&&!y)๋ ๋์ผํ๋ค
- ๋๋ชจ๋ฅด๊ฐ ๋ฒ์น(De Morgan's laws)
- ๊ฐ ์กฐ๊ฑด์ ๋ถ์ ํ๊ณ ๋ ผ๋ฆฌ๊ณฑ์ ๋ ผ๋ฆฌํฉ์ผ๋ก, ๋ ผ๋ฆฌํฉ์ ๋ ผ๋ฆฌ๊ณฑ์ผ๋ก ๋ฐ๊พธ๊ณ ๋ค์ ์ ์ฒด๋ฅผ ๋ถ์ ํ๋ฉด ์๋์ ์กฐ๊ฑด๊ณผ ๊ฐ์
- ์ฆ,
n<10||n>99
๋!(n>=10&&n<=99)
์ ๊ฐ์
์ง๊ฐ ์ด๋ฑ๋ณ ์ผ๊ฐํ ์ถ๋ ฅ
#include <stdio.h>
int main(void) {
int height;
do {
printf("๋ช ๋จ ์ผ๊ฐํ์
๋๊น?: "); scanf("%d", &height);
} while(height<=0);
for(int i=1; i<=height; i++) {
for(int j=1; j<=i; j++)
putchar('*');
putchar('\n');
}
}
- ์์๋
0์ด ์๋๋ฉด ์ฐธ์ด๊ณ 0์ด๋ฉด ๊ฑฐ์ง
if(a) printf("ABC");
- ๋ณ์ a์ ๊ฐ์ด 0์ด ์๋๊ธฐ๋ง ํ๋ฉด(1์ด๋ 100์ด๋ -2๋ ๋ชจ๋) 'ABC' ์ถ๋ ฅ
- C ์ธ์ด์์๋ 0์ ๊ฑฐ์ง, 0์ด ์๋ ๋ชจ๋ ๊ฐ์ ์ฐธ์ผ๋ก ๊ฐ์ฃผ
์ฌ์ ํ๋จ ๋ฐ๋ณต๊ณผ ์ฌํ ํ๋จ ๋ฐ๋ณต์ ์ฐจ์ด์
- ์ฌ์ ํ๋จ ๋ฐ๋ณต๋ฌธ์ธ while๋ฌธ๊ณผ for๋ฌธ์ ์ฒ์์ ์ ์ด์์ ํ๊ฐํ ๊ฒฐ๊ณผ๊ฐ 0์ด๋ฉด ๋ฃจํ ๋ณธ๋ฌธ์ ํ ๋ฒ๋ ์คํ๋์ง ์์
- ์ฌํ ํ๋จ ๋ฐ๋ณต๋ฌธ์ธ do๋ฌธ์ ๋ฃจํ ๋ณธ๋ฌธ์ด ๋ฐ๋์ ํ ๋ฒ์ ์คํ๋จ
์ฐ์ต๋ฌธ์
Q7. ์ค์ต 1-5๋ฅผ ์ฐธ๊ณ ํ์ฌ n์ด 7์ด๋ฉด '1 + 2 + 3 + ... + 7 = 28'๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ
Q8. 1๋ถํฐ 10๊น์ง์ ํฉ์ (1+10)*5์ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํ ์ ์๋ค. ๊ฐ์ฐ์ค์ ๋ง์ ์ด๋ผ๋ ์ด ๋ฐฉ๋ฒ์ ์ด์ฉํ์ฌ 1๋ถํฐ n๊น์ง์ ์ ์ ํฉ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ
Q9. ์ ์ a, b๋ฅผ ํฌํจํ์ฌ ๊ทธ ์ฌ์ด์ ๋ชจ๋ ์ ์์ ํฉ์ ๊ตฌํ๋ sumof ํจ์๋ฅผ ์์ฑํ๋ผ(a์ b์ ๋์ ๊ด๊ณ์ ์๊ด์์ด ํฉ์ ๊ตฌํ๋ผ)
#include <stdio.h>
void q7(int n) {
int sum=0;
for(int i=1; i<=n; i++) {
sum+=i;
if(i==n) printf("%d = ", i);
else printf("%d + ", i);
}
printf("%d\n", sum);
}
void q8(int n) {
int sum;
if(n%2==0) sum=(1+n)*(n/2);
else sum=(1+(n-1))*((n-1)/2)+n;
printf("1๋ถํฐ %d๊น์ง์ ํฉ: %d\n", n, sum);
}
void sumof(int a, int b) {
int big, small, sum=0;
if(a>=b) {
big=a; small=b;
}
else {
big=b; small=a;
}
for(int i=small; i<=big; i++) {
sum+=i;
}
printf("%d๋ถํฐ %d๊น์ง์ ํฉ: %d\n", small, big, sum);
}
int main(void) {
int n;
printf("1๋ถํฐ n๊น์ง์ ํฉ์ ๊ตฌํฉ๋๋ค.\n");
printf("n์ ๊ฐ: "); scanf("%d", &n);
q7(n);
q8(n);
int a, b;
printf("a์ ๊ฐ: "); scanf("%d", &a);
printf("b์ ๊ฐ: "); scanf("%d", &b);
sumof(a, b);
return 0;
}
Q10. ๋ ๋ณ์ a, b์ ์ ์๋ฅผ ์ ๋ ฅํ๊ณ b-a๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ(๋ณ์ b์ ์ ๋ ฅํ ๊ฐ์ด a ์ดํ๋ฉด ๋ณ์ b์ ๊ฐ์ ๋ค์ ์ ๋ ฅ)
Q11. ์์ ์ ์๋ฅผ ์ ๋ ฅํ๊ณ ์๋ฆฟ์๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ
void q10() {
int a, b;
printf("a์ ๊ฐ: "); scanf("%d", &a);
do {
printf("b์ ๊ฐ: "); scanf("%d", &b);
if(a>=b) printf("a๋ณด๋ค ํฐ ๊ฐ์ ์
๋ ฅํ์ธ์!\n");
} while(a>=b);
printf("b-a = %d\n", b-a);
}
void q11() {
int num, digits=0;
do {
printf("๊ฐ: "); scanf("%d", &num);
} while(num<=0);
while(num>0) {
num/=10;
digits++;
}
printf("๊ทธ ์๋ %d์๋ฆฌ์
๋๋ค.\n", digits);
}
Q12. ์์ชฝ๊ณผ ์ผ์ชฝ์ ๊ณฑํ๋ ์๊ฐ ์๋ ๊ณฑ์ ํ๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ(๊ตฌ๋ถ์ ์ ์์ง์ , ๋ง์ด๋์ค, ํ๋ฌ์ค ๊ธฐํธ ์ฌ์ฉ)
Q13. ๊ณฑ์ ์ด ์๋๋ผ ๋ง์ ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ
Q14. ์ ๋ ฅํ ์๋ฅผ ํ ๋ณ์ผ๋ก ํ๋ ์ ์ฌ๊ฐํ์ * ๊ธฐํธ๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ
Q15. ์ ๋ ฅํ ๋์ด์ ๋๋น์ ๋ง๋ ์ง์ฌ๊ฐํ์ * ๊ธฐํธ๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ
void q12() {
for(int i=0; i<=9; i++) {
if(i==0) printf(" | ");
else printf("%2d| ", i);
for(int j=1; j<=9; j++) {
if(i==0) printf("%3d ", j);
else printf("%3d ", i*j);
}
putchar('\n');
if(i==0) printf("---+------------------------------------\n");
}
}
void q13() {
for(int i=0; i<=9; i++) {
if(i==0) printf(" | ");
else printf("%2d| ", i);
for(int j=1; j<=9; j++) {
if(i==0) printf("%3d ", j);
else printf("%3d ", i+j);
}
putchar('\n');
if(i==0) printf("---+------------------------------------\n");
}
}
void q14() {
int side;
printf("์ฌ๊ฐํ์ ์ถ๋ ฅํฉ๋๋ค.\n");
printf("์
๋ ฅ ์: "); scanf("%d", &side);
for(int i=1; i<=side; i++) {
for(int j=1; j<=side; j++)
putchar('*');
putchar('\n');
}
}
void q15() {
int width, height;
printf("์ฌ๊ฐํ์ ์ถ๋ ฅํฉ๋๋ค.\n");
printf("๋์ด: "); scanf("%d", &height);
printf("๋๋น: "); scanf("%d", &width);
for(int i=1; i<=height; i++) {
for(int j=1; j<=width; j++)
putchar('*');
putchar('\n');
}
}
Q16. ์ผ์ชฝ ์๋, ์ผ์ชฝ ์, ์ค๋ฅธ์ชฝ ์, ์ค๋ฅธ์ชฝ ์๋๊ฐ ์ง๊ฐ์ธ ์ด๋ฑ๋ณ ์ผ๊ฐํ์ ์ถ๋ ฅํ๋ ํจ์๋ฅผ ๊ฐ๊ฐ ์์ฑํ๋ผ
Q17. n๋จ์ ํผ๋ผ๋ฏธ๋๋ฅผ ์ถ๋ ฅํ๋ ํจ์๋ฅผ ์์ฑํ๋ผ
Q18. ์๋๋ฅผ ํฅํ n๋จ์ ์ซ์ ํผ๋ผ๋ฏธ๋๋ฅผ ์ถ๋ ฅํ๋ ํจ์๋ฅผ ์์ฑํ๋ผ
void triangleLB() {
int height;
do {
printf("๋ช ๋จ ์ผ๊ฐํ์
๋๊น?: "); scanf("%d", &height);
} while(height<=0);
for(int i=1; i<=height; i++) {
for(int j=1; j<=i; j++)
putchar('*');
putchar('\n');
}
}
void triangleLU() {
int height;
do {
printf("๋ช ๋จ ์ผ๊ฐํ์
๋๊น?: "); scanf("%d", &height);
} while(height<=0);
for(int i=height; i>=1; i--) {
for(int j=1; j<=i; j++)
putchar('*');
putchar('\n');
}
}
void triangleRU() {
int height;
do {
printf("๋ช ๋จ ์ผ๊ฐํ์
๋๊น?: "); scanf("%d", &height);
} while(height<=0);
for(int i=height; i>=1; i--) {
for(int j=1; j<=height; j++) {
if((height-i)>=j) putchar(' ');
else putchar('*');
}
putchar('\n');
}
}
void triangleRB() {
int height;
do {
printf("๋ช ๋จ ์ผ๊ฐํ์
๋๊น?: "); scanf("%d", &height);
} while(height<=0);
for(int i=1; i<=height; i++) {
for(int j=1; j<=height; j++) {
if((height-i)<j) putchar('*');
else putchar(' ');
}
putchar('\n');
}
}
void spira(int n) {
int max = (n-1)*2+1;
int half = max/2+1;
for(int i=0; i<n; i++) {
for(int j=1; j<=max; j++) {
if((half-i)<=j&&(half+i)>=j) putchar('*');
else putchar(' ');
}
putchar('\n');
}
}
void nrpira(int n) {
int max = (n-1)*2+1;
int half = max/2+1;
for(int i=n-1; i>=0; i--) {
for(int j=1; j<=max; j++) {
if((half-i)<=j&&(half+i)>=j) printf("%d", half-i);
else putchar(' ');
}
putchar('\n');
}
}
'Development Study > C' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Lecture] Cpp - Finals Summary (0) | 2023.06.13 |
---|---|
[Lecture] Cpp - Assignment (0) | 2023.04.16 |
[Lecture] Cpp - Mid Summary (0) | 2023.04.14 |
[C] C & Cpp with Mac Vscode ์ฐธ๊ณ ๊ธ (0) | 2023.03.05 |
[C] ์๊ณ ๋ฆฌ์ฆ - ๋๋ค ์ ์๋ค ์ค ๋ ๋ฒ์งธ๋ก ํฐ ๊ฐ ์ถ๋ ฅํ๊ธฐ (0) | 2020.06.28 |