How We Coding

Week 05

Tutoring/18-1 C Lang2018. 4. 18. 16:20

< 180418 >


1) if ~else if~ 를 활용한 학점 계산.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
int main()
{
    int n;
    scanf("%d"&n);
 
    if(90 <= n) printf("A\n");
    else if(80 <= n) printf("B\n");
    else if(70 <= n) printf("C\n");
    else printf("D\n");
 
    return 0;
}
cs


>> 9 라인의 경우 else if(80 <= n && n < 90) 으로 써도 되지만, 위와 같이 써도 된다.


2) 위 문제를 switch case 문으로.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
int main()
{
    int n;
    scanf("%d"&n);
 
    switch(n/10)
    {
    case 10printf("A\n"); break;
    case 9printf("A\n"); break;
    case 8printf("B\n"); break;
    case 7printf("C\n"); break;
    defaultprintf("D\n"); break;
    }
 
    return 0;
}
cs



3) switch case 문의 실행흐름

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
int main()
{
    int n;
    scanf("%d"&n);
 
    switch(n/10)
    {
    case 10printf("A\n"); 
    case 9printf("A\n"); break;
    case 8printf("B\n"); break;
    case 7printf("C\n"); break;
    defaultprintf("D\n"); break;
    }
 
    return 0;
}
cs


>> 10 라인에서 break; 를 삭제하였다. 그다음 100을 입력받아 n에 저장하면 AA 가 출력된다..!!

>> 90 을 입력하면 A가 출력된다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
 
int main()
{
    int n;
    scanf("%d"&n);
 
    switch(n/10)
    {
    case 10printf("A\n"); 
    case 9printf("A\n"); 
    case 8printf("B\n"); break;
    case 7printf("C\n"); break;
    defaultprintf("D\n"); break;
    }
 
    return 0;
}
cs


>> 11 라인에 break; 도 삭제해보자. 그다음 100을 입력하면  AAB 가 출력된다.

>> 즉, 해당하는 case 번호를 만나면, 해당라인에서 break; 를 만날때까지 실행이 된다.

    (90 을 입력하면 AB 가, 80을 입력하면 B가 출력된다.)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
 
int main()
{
    int n;
    scanf("%d"&n);
 
    switch(n/10)
    {
    case 10case 9printf("A\n"); break;
    case 8printf("B\n"); break;
    case 7printf("C\n"); break;
    defaultprintf("D\n"); break;
    }
 
    return 0;
}
cs


>> 2) 문제의 경우 위와같이 작성하면 된다.



4) 대문자 A 인지 소문자 a 인지, switch case 문으로

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
 
int main()
{
    char ch;
    scanf("%c"&ch);
 
    switch(ch)
    {
    case 'A'printf("대문자 A\n"); break;
    case 'a'printf("소문자 a\n"); break;
    }
 
    return 0;
}
cs


>> case 다음에는 정수가 와야한다. 하지만 문자도 올 수 있다. 문자의 정체는 정수이기 때문이다..!!



5) 입력한 문자가, 대문자인지, 소문자인지, 숫자인지, 특수문자인지

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
int main()
{
    char ch;
    scanf("%c"&ch);
 
    if('A' <= ch && ch <= 'Z'printf("대문자\n");
    else if('a' <= ch && ch <= 'z'printf("소문자\n");
    else if('0' <= ch && ch <= '9'printf("숫자\n");
    else printf("특수문자\n");
 
    return 0;
}
cs


>> && 연산자의 활용, 아스키 코드값의 특징 확인.



6) 임의의 숫자를 입력받아 실수형 숫자이면 소수 이하 숫자만 출력하고, 정수형 숫자면 짝수, 홀수를 구분하여 출력하는 프로그램 (7.7)

 

1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
 
int main()
{
    double d;
    scanf("%lf"&d);
 
    if(d - (int)d > 0printf("%lf\n", d-(int)d);
    else (int)d%2 == 1 ? printf("odd\n") : printf("even\n");
 
    return 0;
}
cs




7) printf() 에서의 증감연산자

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
 
int main()
{
    int a = 4, b = 7;
 
    printf("%d\n", a + a++);        // 8
    printf("%d\n"+++ a);        // 12
    printf("%d\n", (++a) + (++a));  // 15 , VS >> 16
    printf("%d\n", b + b--);        // 14 
    printf("%d\n", b + --b);        // 11 , VS >> 10
 
    return 0;
}
cs


>> 9라인의 결과가 Mac 에서 진행한 것과, Visual Studio 에서 진행한 것이 다르다....

'Tutoring > 18-1 C Lang' 카테고리의 다른 글

Week 07  (0) 2018.05.05
Week 06  (0) 2018.04.23
Week 04  (0) 2018.04.11
Week 03  (0) 2018.04.04
Week 02  (2) 2018.03.28