티스토리 뷰

jungol > 문제 > Langauge_Corder > 선택제어문 - 형성평가 1~5



형성평가 1

 

 

  • 문제 조건


두 정수의 차 구하기


코드


두 정수의 차를 구하기 위해

10) int num= a-b;

두 수를 빼준 후 num이란 변수에 값을 대입한 뒤

11) if(num < 0) num = (-1) * num;

그 값이 음수면 -1을 곱해 양수로 만들었다.



출력


여러번 실행해도 두 수의 차가 양수로 잘 나온다!



 

형성평가 2

 

 

  • 문제 조건

조건 1 : 양수 입력 ~ plus 출력
조건 2 : 음수 입력 ~ minus 출력
조건 3 : 0 입력 ~ zero 출력


코드


조건 1, 2, 3은 종속적인 관계가 아니므로
if, else if, else을 사용하여 조건을 나타냈다.

9) if(a==0) printf("zero\n");
//조건 3

10) else if(a>0) printf("plus\n");
//조건 2

11) else printf("minus");
//조건 1

11)의 else은 a=!0 || a<=0의 의미를 가진다.


결과들


잘 작동한다.



 

형성평가 3

 

 

  • 문제 조건

조건 1 : 400으로 나눴을 때 나머지가 0 ~ 윤년

조건 2 : 4로 나눴을땐 나머지가 0이나, 100으로 나눴을 땐 나머지가 0이 아님 ->윤년

조건 3 : 조건 1, 2의 나머지 ->평년


이번에도 조건 1, 2, 3은 서로 동등한 위치에 있으니
if, else if, else꼴로 조건을 나타냈다.

예) 입력값 24

조건 1에선 나머지가 24이므로 그냥 넘어간다.
(24%400 = 24)
조건 2에선 4와 나눌 땐 나머지가 0 이므로 부합
100으로 나눌 땐 나머지가 24이므로 조건에 부합
그래서 조건 2를 만족하며 leap year 가 출력된다.
조건 3조건 1조건 2를 제외한 나머지 이므로
지나간다.


결과

잘 나왔다.



 

형성평가 4

 

  • 문제 조건

조건 1 : 1 입력 ~ dog 출력
조건 2 : 2 입력 ~ cat 출력
조건 3 : 3 입력 ~ chick 출력
조건 4 : 1, 2, 3 외 입력 ~ I don't know 출력



코드


이번에는 조건들을 switch로 만들었다.
조건 1, 2, 3, 4
각각 case 1: case 2: case 3: default:로 적었다.

여기서 case가 끝날 때마다 break;을 해줘야 여러 개가 출력되는 참사를 막을 수 있다.


실행


여러 번 실행했을 때이다!



 

형성평가 5

 

 

  • 문제 조건

달 입력 ~ 입력받은 날의 일 수 출력 (평년 시)

조건 1 : 2 입력 ~ 28 출력
조건 2 : 4, 6, 9, 11 입력 ~ 30 출력
조건 3 : 1, 3, 5, 7, 8, 10, 12 입력 ~ 31 출력


코드

이번에도 조건들은 동등한 관계이므로
if, else if , else로 나타냈다.


8) if(a==2) printf("28\n");
//조건 1

9) else if(a==4 || a==6 || a==9 || a==11) printf("30\n");
//조건 2

10) else printf("31\n");
//조건 3

결과


잘 실행됐다!




코드

형성평가 1
#include <stdio.h>

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

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

int num a-b;
if(num<0) num = (-1) * num;

printf("%d", num);
return 0;
}
형성평가 2
#include <stdio.h>

int main(void)
{
int a = 0;

scanf("%d", &a);

if(a==0) printf("zero\n");
else if(a>0) printf("plus\n");
else printf("minus\n");

return 0;
}
형성평가 3
#include <stdio.h>

int main(void)
{
int a = 0;

scanf("%d", &a);

if(a%400==0) printf("leap year\n");
else if(a%4==0 || a%100!=0)  printf("leap year\n") else printf("common year\n");

return 0;
}
형성평가 4
#include <stdio.h>

int main(void)
{
int a = 0;
printf("Number? ");
scanf("%d", &a);

switch(a) {
     case 1: printf("dog\n");
                    break;
     case 2: printf("cat\n");
                    break;
     case 3: printf("chick\n");
                    break;
     default: printf("I don't know");
}

return 0;
}
형성평가 5
#include <stdio.h>

int main(void)
{
int a = 0; //입력값은 1~12이다!
scanf("%d", &a);

if(a==2) printf("28\n");
else if(a==4 || a==6 || a==9 || a==11)  printf("30\n"); else printf("31\n");

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
글 보관함