딩굴댕굴

C 7Day (20160115)

by jennysgap

BOX

조건문(삼항 연산자)






조건문(삼항 연산자) 예제

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
int main(void)
{
    int num, abs;
    printf("정수 입력 : ");
    scanf("%d", &num);
 
    abs = num>0 ? num : num*(-1);
    printf("절댓값 : %d \n", abs);
 
    return 0;
}
cs



if else 문으로 구현해보기

if (num>0)

abs=num;

else

abs=num*(-1);



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
int main(void)
{
    int num, abs;
    printf("정수 입력 : ");
    scanf("%d", &num);
 
    if (num>0)
        abs=num;
        printf("절댓값 : %d \n", abs);
 
    else
        abs=num*(-1);
        printf("절댓값 : %d \n", abs);
 
    return 0;
}
cs







if문 문제

  1. 두 개의 정수를 입력 받아서 두 수의 차를 출력하는 프로그램을 작성하자. 단, 무조건 큰 수에서 작은 수를 뺀 결과를 출력해야 한다.
    예를들어 두 수가 순서에 상관없이 7과 19라면 12가 출력이 되어야 한다. 즉, 출력의 결과는 무조건 0이상이 되어야 한다.
    http://colorscripter.com/s/5xECkQc

  2. 세 과목(국어, 수학, 영어)의 성적을 입력받아 합계와 평균을 구하고 평균이 90이상이면 "A", 80이상이면 "B", 70이상이면 "C", 60이상이면 "D", 60미만이면 "F"를 출력하시오.
    http://colorscripter.com/s/GW3XM2A

  3. 대소문자를 변환하는 프로그램을 만드시오
    예를 들어        A가 입력되면 a 출력

                            a가 입력되면 A가 출력
    http://colorscripter.com/s/46ONEmr







조건문(switch-case문)

  • 다중 if문의 표현식과 비슷한 방법으로 실행

  • 식에 맞는 부분을 찾아서 실행

  • 프로그램 상 메뉴를 만드는 곳에 주로 쓰임





조건문(switch-case) 예제

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
#include <stdio.h>
int main(void)
{
    int num;
    printf("1이상 5이하의 정수 입력 : ");
    scanf("%d", &num);
 
    switch(num)
    {
        case 1:
            printf("1은 one \n");
            break;
        case 2:
            printf("2은 two \n");
            break;
        case 3:
            printf("3은 three \n");
            break;
        case 4:
            printf("4은 four \n");
            break;
        case 5:
            printf("5은 five \n");
            break;
        default:
            printf("I don't know! \n");
    }
    return 0;
}
cs


switch (식) :   조건문이 아니고 식이 들어간다는 것!!!!

default :   예외 상황을 입력 할 수 있음

장점 :   식의 해당되는 부분만 실행되고 나머지는 넘어감

break :   case마다 break를 다 입력해야 한다. switch-case 탈출하는 용도로 만들었음

     그렇다면 아예 설계할 때부터 빠져 나가게 하면 되지 왜 만들었을까?   break를 일부로 삽입하지 않는 경우도 있기 때문이다.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
int main(void)
{
    char ch;
    printf("M:오전, A:오후, E:저녁 \n");
    scanf("%c", &ch);
 
    switch(ch)
    {
        case 'M':
        case 'm':
            printf("Morning \n");
            break;
        case 'A':
        case 'a':
            printf("Afternoon \n");
            break;
        case 'E':
        case 'e':
            printf("Evening \n");
            break;
    }
    return 0;
}
cs








switch문과 if~else문의 비교


if...else if...else보다 switch문이 간결해 보이기 때문에 switch문을 더 선호한다.





switch문으로 구현할 수 있는 조건의 구성에는 한계가 있다.






문제!

  1. switch문을 이용해 사칙연산 할 수 있는 계산기를 만들어보자
    http://colorscripter.com/s/EqJZYFG
  2. 사용자에게 숫자 하나를 입력받은 후 그 수가 0이상 10미만, 10이상 20미만, 20이상 30미만, 30이상인지 알려주는 프로그램을 만들어보자.
    예를들어 22가 입력이 되면 "20이상 30미만 입니다" 를 출력하도록 하자
    http://colorscripter.com/s/EY00x27






goto문

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
{
    int num;
    printf("자연수 입력 :");
    scanf("%d", &num);
 
    if (num == 1)
        goto ONE;
    else if (num == 2)
        goto TWO
    else
        goto OTHER;
 
ONE:
    printf("1을 입력하셨습니다. \n");
    goto END;
TWO:
    printf("2을 입력하셨습니다. \n");
    goto END;
OTHER:
    printf("3혹은 다른 값을 입력하셨습니다. \n");
END:
    
}
cs



지금은 C언어의 절차지향적인 부분을 방해한다고 해서 지금은 사용 안함

그러나 기존 회사에서 만들어진 프로그램이 있을 수도 있으니 분석은 할 줄 알아야 합니다.

선생님 왈 : 아 몰라도 됨!!!   걍 그런게 있다고~~  ㅋㅋㅋ 아 몰라몰라몰라 ㅋㅋ






C언어에 관한 면접 질문


  1. 조건문 if와 switch의 차이점이 뭔가요?
  2. 방법론 while과 for의 차이점이 뭔가요? 어떤 상황에서 사용하는가?
  3. pointer 개념이 뭔가? 왜 사용하는가?
  4. point 개념이 뭔가?









20160115 c언어 7day.txt






반응형

'BOX' 카테고리의 다른 글

C 9Day (20160119)  (0) 2016.01.21
C 8Day (20160118)  (0) 2016.01.21
C 6Day (20160114)  (0) 2016.01.20
C 5Day (20160113)  (0) 2016.01.20
C 4Day (20160112)  (0) 2016.01.20

블로그의 정보

jennysgap

jennysgap

활동하기