#include <stdio.h>
int main(void)
{
int a,b,c = 1;
char grade;
printf("점수를 입력 : ");
scanf("%d", &a);
b=(a-1)/10;
switch (b) {
case 9:
grade ='A';
break;
case 8:
grade ='B';
break;
case 7:
grade ='C';
break;
case 6:
grade ='D';
break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0:
grade ='F';
break;
default:
c = 0;
}
if(c)
printf("입력한 정수 : %d, 학점 : %c n", a, grade);
else
printf("입력이 잘못되었습니다.n");
return 0;
}
이게 아마 맞는거인거 같은데요..
여기서..
a,b,c = 1; 로 하면.. 입력을 잘못하면
입력이 잘못되었습니다. 라고 뜰때가 있지만
a = 1, b = 1, c = 1; 로하면 잘못되었습니다가 안뜨네요..
둘다 같은거 아닌가요..?
아니면 처음 배울때 뭔가 잘못 이해했던건가...
라고 하면 c 만 1로 초기화가 됩니다.
int a;
int b;
int c=1; 과 같은 의미가 되는거죠.
때문에 a,b는 초기화되지 못하고 아무값을 가지지 못하거나, 메모리상 남아있는 쓰레기값을 가지게 되어 오류발생.
변수선언할땐 꼭 변수별로 초기화 해주는 센스가 필요합니다.