ㅇ실수
0과 1사이에는 수가 무한한데 float와 double은 소수점 n자리 까지만 표현하기 때문에
그 뒷자리 숫자는 오류가 날 수있다는 특징이 있다.
ㅇ묵시적 형변환
ㅇ명시적 형변환
int num1 = 1
int num2 = 3
double result01 = num1 / num2; >>> 0.00000000 나옴
double result01 = (double)num1 / num2; >>> 0.25000000 나옴
ㄴ실수화 시켜준다.
더블과 인트가 만나면 더블이 된다.
왜냐면 정보를 최대한 덜 버리려는 기조가 있기 때문.
ㅇsizeof 연산자
크기 측정
파이썬 len의 어려운 버전이라고 생각하면 편함
< switch~case문 >
점수 입력하면 몇등급인지 출력하기
int score;
printf("점수를 입력하세요: ");
scanf("%d", &score);
switch (score)
{
case 100:
case 99:
case 98:
case 97:
case 96:
printf("A"); //100~96
break;
case 95:
case 94:
case 93:
case 92:
case 91:
printf("B");//95~91
break;
case 90:
case 89:
case 88:
case 87:
case 86:
printf("C");//90~86
break;
case 85:
case 84:
case 83:
case 82:
case 81:
printf("D");//85~81
break;
case 80:
case 79:
case 78:
case 77:
case 76:
printf("E");//80~76
break;
default:
printf("F");
break;
}
매우 비효율적이다.
이걸 if문으로 바꾸면?
int score;
printf("점수를 입력하세요: ");
scanf("%d", &score);
if (96<= score && score <=100) // 96<= score <=100 이라고하면 안됨
{ // (score >= 96) 쓰면 && 안써도됨
printf("A");
}
else if (91<= score && score <= 95)
{
printf("B");
}
else if (86<= score && score <=90)
{
printf("C");
}
else if (81<= score && score <=85)
{
printf("D");
}
else if (76<= score && score <= 80)
{
printf("E");
}
else
{
printf("F");
}
return 0;
}
조건식을 96<= score <=100 이라고하면 안됨.
이거는 파이썬에서만 되는거임.
c언어에서는 논리연산자 사용 해야함.
< for문 >
// 1~10 출력 + 역순
for (int i=10; i>0; i--){
printf("%d ", i);
}
printf("\n");
for (int j=1; j<11; j++){
printf("%d ", j);
}
return 0;
}
'일지' 카테고리의 다른 글
Day 16 반복문 (2) | 2025.03.12 |
---|---|
Day 15 (0) | 2025.03.11 |
Day 13 - (0307) / C언어 (4) | 2025.03.07 |
DAY 12 (1) | 2025.03.06 |
DAY 11 (0) | 2025.03.05 |