How We Coding

<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 == 1return 1;
    return n * mul(n-1);
}
 
int mulEven(int n)
{
    if(n < 1return 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*+ 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