Week 1-1 : C Lang review
Tutoring/18-1 DS2018. 3. 28. 01:17
<180327>
- C Lang review
8-3) 문자열 복사하기.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | #include <stdio.h> void myStrcpy(char *to, char *from) { while(*from) *(to++) = *(from++); *to = 0; } int main() { char a[]="HS_Turoring"; char b[100]; myStrcpy(b, a); puts(b); return 0; } | cs |
>> 조건식에서의 참, 거짓.
>> 널문자의 아스키 코드값 == 0
>> 널문자 따로 넣어주기 (7번 라인)
>> 포인터 연산의 원리 생각해보기.
>> 배열의 이름은 상수형태의 포인터.
>> 포인터(변수)는 말그대로 변수이므로, 주소값이 바뀔 수 있다.
8-5) 문자열 뒤집기
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 | #include <stdio.h> int myStrlen(char *s) { int i=0; while(s[i]) i++; return i; } void reverse(char *to, char *from) { int idx=0; int len=myStrlen(from); for(int i=len-1; i>=0; i--) to[idx++] = from[i]; to[idx] = 0; } int main() { char a[]="HS_Turoring"; char b[100]; reverse(b, a); puts(b); return 0; } | cs |
>> 널문자 삽입 코드 필수.
>> 배열의 이름[문자열의 길이] 에는 널문자가 들어있다.
>> 문자열의 길이는 reverse() 에서 구한다음 진행하면 됨.
9) 순환함수.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #include <stdio.h> int mul(int n) { if(n == 1) return 1; return n * mul(n-1); } int mulEven(int n) { if(n < 1) return 1; if(n%2 == 1) n--; return n * mul(n-2); } int main() { int n; scanf("%d", &n); printf("%d\n", mul(n)); printf("%d\n", mulEven(n)); return 0; } | cs |
>> 함수를 잘 정의하고, 그 정의를 그대로 활용하기.
>> 어떻게 쪼개서 생각할 수 있을까? 고민해보기.
>> 생각한 것을 그대로 코드로 옮기기. 함수의 기능을 그대로 활용해서..!!
>> 탈출조건 고민해보기.
2-4) is직각삼각형?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> int isTri(int max, int a, int b) { return max*max == a*a + b*b; } int main() { int a, b, c; int tri; scanf("%d%d%d", &a, &b, &c); if(a > b && a > c) tri = isTri(a, b, c); else if(b > a && b > c) tri = isTri(b, a, c); else tri = isTri(c, a, b); tri ? puts("직각") : puts("ㄴㄴ"); return 0; } | cs |
>> 큰값만 알면 되므로..
>> 함수를 사용해야 하는 이유 생각해보기..!!
'Tutoring > 18-1 DS' 카테고리의 다른 글
Week 3-2 : Linked List (0) | 2018.04.15 |
---|---|
Week 3-1 : Linked List (0) | 2018.04.11 |
Week 2-2 : ArrayList (0) | 2018.04.05 |
Week 2-1 : How to code Recursive function2 (0) | 2018.04.04 |
Week 1-2 : How to code Recursive function (0) | 2018.03.30 |