[복학생 갱생 프로젝트] #1 제어문 - 조건문
복학생 갱생 프로젝트 2일차
스터디 플랜
[ 스터디 공지 ]
저번시간에 오리엔테이션 진행과 함께 C언어에서 기초문법,입출력,연산자에 대해 공부했다. 오늘은 제어문에 대해서 학습하려고 한다.
[ 스터디 구성원 ]
정승제
조진새진
이타치가든
[ 스터디 커리큘럼 ]
1_기초문법,입출력,연산자
2_제어문
3_전처리
4_포인터,배열,함수
5_문자열,구조체
6_동적할당1
7_동적할당2
저번시간에 오리엔테이션 진행과 함께 C언어에서 기초문법,입출력,연산자에 대해 공부했다. 오늘은 제어문에 대해서 학습하려고 한다.
[ 스터디 구성원 ]
[ 스터디 커리큘럼 ]
1_기초문법,입출력,연산자
2_제어문
3_전처리
4_포인터,배열,함수
5_문자열,구조체
6_동적할당1
7_동적할당2
실습#2_제어문 - 조건문
조건문
- If
if(num1>num2){
printf("num1이 num2보다 크다. \n");
printf("%d > %d \n", num1, num2);
}
- num1이 num2보다 크면 실행
if(num1>num2)
printf("num1이 num2보다 크다. \n");
- 한 줄이면 중괄호 생략 가능
int main(){
int num;
printf("정수 입력: ");
scanf("%d",&num);
if(num<0)
printf("입력 값은 0보다 작다. \n");
if(num>0)
printf("입력 값은 0보다 크다. \n");
if(num==0)
printf("입력 값은 0이다. \n");
return 0;
}
실행결과
정수 입력: 3
입력 값은 0보다 크다.
실행결과
정수 입력: 0
입력 값은 0이다.
int main(){
int opt;
double num1, num2;
double result;
printf("1.덧셈 2.뺄셈 3.곱셈 4.나눗셈 \n");
printf("선택? ");
scanf("%d",&opt);
printf("두 개의 실수 입력: ");
scanf("%lf %lf",&num1, &num2);
if(opt==1)
result=num1+num2;
if(opt==2)
result=num1-num2;
if(opt==3)
result=num1*num2;
if(opt==4)
result=num1/num2;
printf("결과: %f \n", result);
return 0;
}
실행결과
1.덧셈 2.뺄셈 3.곱셈 4.나눗셈
선택? 3
두 개의 실수 입력: 2.14 5.12
결과: 10.956800
- 프로그램 구성상 사칙연산 중 하나만 실행이 된다. 그럼에도 불구하고 프로그램 사용자가 덧셈연산을 선택할지라도 총 4번의 조건검사를 해야한다는 단점이 있다.
- If ~ else
if(num1>num2){
printf("num1이 num2보다 크다. \n");
printf("%d > %d \n", num1, num2);
}
else{
printf("num1이 num2보다 크지 않다. \n");
printf("%d <= %d \n", num1, num2);
}
- if문 : num1이 num2보다 크면 실행
- else문 : num1이 num2보다 크지 않으면 실행
int main(){
int num;
printf("정수 입력: ");
scanf("%d",&num);
if(num<0)
printf("입력 값은 0보다 작다. \n");
else
printf("입력 값은 0보다 작지 않다. \n");
return 0;
}
실행결과
정수 입력: 7
입력 값은 0보다 작지 않다.
- if ~ else문은 하나의 문장이다.
- 따라서 if 와 else 사이에 다른 문장이 삽입될 수 없다.
- If ~ else if ~ else
int main(){
int opt;
double num1, num2;
double result;
printf("1.덧셈 2.뺄셈 3.곱셈 4.나눗셈 \n");
printf("선택? ");
scanf("%d",&opt);
printf("두 개의 실수 입력: ");
scanf("%lf %lf",&num1, &num2);
if(opt==1)
result=num1+num2;
else if(opt==2)
result=num1-num2;
else if(opt==3)
result=num1*num2;
else
result=num1/num2;
printf("결과: %f \n", result);
return 0;
}
- 합리적으로 완성된 사칙연산 계산기 프로그램
- Switch Case

int main(){
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;
}
실행결과
1이상 5이하의 정수 입력: 3
3은 THREE
int main(){
char sel;
printf("M 오전, A 오후, E 저녁 \n");
printf("입력: ");
scanf("%c",&sel);
switch(sel){
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;
}
실행결과
M 오전, A 오후, E 저녁
입력 : M
Morning
퀴즈
-
두 개의 정수를 입력받아 큰 수에서 작은 수를 뺀 차를 출력하라.
-
입력: 10 30
-
출력: 20
-
입력: 40 10
-
출력: 30
-
- 성적을 입력받아 A+에서 F까지 출력
- 예: 95 -> A+, 67 -> D+, 82 -> B
- 1부터 9,999까지의 범위에 포함되는 정수 N을 거꾸로 출력하라.
- 입력(정수): 2187
- 출력(거꾸로): 7812
- 지하철 요금이 얼마인지 계산하시오. 역 수에 따른 요금 계산은 다음과 같다
- 규칙]
- 기본: 5 정거장까지 600원, 10 정거장까지 700원
- 추가: 2 정거장마다 50원
- 입력(지나는 정거장 수) = 13
- 출력: 850원
- 규칙]
후기
아직까지는 내용이 매우 쉬워서 그런지 수강생들이 수업을 잘 따라오고 있다. 다만
퀴즈 문제를 풀 때 좀 귀찮아하는 거 같다. 뭐 하여튼 EZ
댓글남기기