티스토리 뷰

jungol > 문제 > Langauge_Corder > 선택제어문 - 자가진단 7~9

자가진단 7

 

출처 : 자기주도C언어프로그래밍

 

  • 문제 조건

대문자를 입력받고
입력된 문자에 대한 글 출력


코드


이번에는 switch 를 이용 했다.

조건이 여러개 있을 경우
if…else if…else 로도 가능하지만
if() 이 괄호안을 적기가 귀찮을 때는
switch()을 이용하셔도 된다.


if(a==65)
(65는 A의 아스키코드입니다)을
switch로 바꾸면

switch(a) {
case 65:

}


로 바꿔 쓸 수 있다.


조건이 단순하되 여러 개일 경우 switch
를 사용해도 된다고 생각한다!
(코딩을 매우 못해서 잘 모르겠다)


default는 case에서
지정한 조건 외 모든 것을 의미다!
(if에서의 else 같은 존재다)

break

switch, while 안 등을 벗어나게 한다.


위의 코드에서
break가 없었다면

예로서 A가 입력될 시
break가 없으니 Excellent부터 error까지
전부다 출력되게 된다!

그래서 switch문에서는 break를
잊지 말고 잘 사용해야 한다.



출력


여러 번 출력했을 때의 결과다!



자가진단 8

 



이번에도 switch()을 이용하면 된다!


코-드


입력받는 수는 실수형이므로
float형 변수를 초기화했다.

또한 조건이 4.0 이상 3.0 이상 2.0 이상 2.0 미만 이므로
이는
case 4
case 3
case 2
default로 나타낼 수 있다.


여기서 실수형 변수를 내림하여 정수로
만들려면
입력값을 받은 변수에 (int)를 붙여
정수형으로 강제형변환을 해주면 된다!

결과


잘 나왔다!



자가진단 9

 

출처 : 자기주도C언어프로그래밍


이번에 사용하는 것은 조건 연산자(삼항 연산자)인

?

이다.

?

사용 방법

(조건) ? (참일 때) : (거짓일 때);
이렇게 사용한다

예) a = (b>=c) ? b : c;

b가 c보다 같거나 크면
a에 b를 대입

아닐 시 a에 c를 대입한다.
특정 상황에서는 if 보다 더욱 간편하게
활용 할 수 있다.

 

코드

  • 13) min = (a<b) ? a : b;
  • 14) min = (min<c) ? min : c;


먼저 a하고 b를 비교한 후 더 작은 수를
min에 대입했다.
그다음 min 과 나머지 c를 비교했다.



결과들


여러 번 출력했을 때의 결과다!




코드

 

자가진단 7
#include <stdio.h>

int main(void)
{
char a = 0;
scanf(" %c", &a);

switch(a) {
     case 65: printf("Excellent\n");
                       break;
     case 66: printf("Good\n");
                       break;
     case 67: printf("Usually\n");
                       break;
     case 68: printf("Effort\n");
                       break;
     case 70: printf("Failure\n");
                       break;
     default:  printf("error\n");
                       break;
}
return 0;
}
자가진단 8
#include <stdio.h>

int main(void)
{
float score 0;
scanf("%f", &score);

switch(score) {
       case 4: printf("scholarship\n");
                       break;
       case 3: printf("next semester\n\n");
                       break;
       case 2: printf("seasonal semester\n");
                       break;
       default: printf("retake\n");
                        break;
return 0;
}
자가진단 9
#include <stdio.h>

int main(void)
{
int a = 0, b = 0, c = 0;

scanf("%d", &a);
scanf("%d", &b);
scanf("%d", &c);

int min = 0;

min = (a<b) ? a : b;
min = (min<c) ? min : c;

printf("%d", min);
return 0;
}
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함