독하게 시작하는 C 제6장 두 번째 독하게 시작하는 C 강의.

1 2 3 4
첫번째 조건 참 1(참),2(거짓)을 두번째 조건으로
거짓 : 3(참),4(거짓)을 두번째 조건으로

나이 같이 순차적으로 증가하는 것(정렬 되어 있는 것). 이럴 때는 분할 정복(divide&conquer)해도 됨.

이름은 속한 스코프{}에서 '유일'해야 함.
외부 or 내부 에서는 중복가능.

STACK ? -> 김치 냉장고.
FIRST IN LAST OUT (FILO)
LAST IN FIRST OUT (LIFO)

다중 IF 문 -> 공기 청정기 필터
큰 먼지부터 제거. 비교 연산이 많아서 성능 떨어짐.
다중 IF문 쓸때는 생각해서 써라 Refactoring(S/W속 엉망인 것을 고치는 것(최적화))할때 다중 IF문 없앰.Switch-case도 마찬가지.

다중 if문이나 switch-case 문 대신 LOOKUPTABLE(룩업테이블)써라.
EX)
#include <stdio.h>

int main(int argc, char* argv[]){
double aRate[10]={
0.0, 0.1, 0.25,
0.5, 0.5,
0.6, 0.65,
0.8, 0,82, 0.97
};
int nAge = 0, i=0, nFee = 1000;
//요금표를 출력
printf("요금표 : ")
for(i=1;i<=10;i++){
printf("%d세 요금 :\t%d원\n",i,(int)(nFee*aRate[i-1]));
putchar('\n');
}
printf("나이를 입력하세요 : ");
scanf("%d",&nAge);
if(nAge<1) nAge=1;
else if(nAge>10) nAge=10;
printf("최종요금 : %d원\n", (int)(nFee*aRate[nAge-1]));
putchar('\n');
return 0;
}
}

실행 결과 :
요금표
1세 요금 : 0원
2세 요금 : 100원
3세 요금 : 250원
4세 요금 : 500원
5세 요금 : 500원
6세 요금 : 600원
7세 요금 : 650원
8세 요금 : 800원
9세 요금 : 820원
10세 요금 : 970원

나이를 입력하세요 : 3 <입력
최종요금 : 250원

덧글

댓글 입력 영역