void Input(int (*grade)[4])
{
int i;
for(i=0;i<PERSON;i++)
{
system(\"cls\");
printf(\"%d번 학생 성적 입력\\n\",i+1);
while(1)
{
printf(\"국 어 : \");
scanf(\"%d\",&grade[i][0]);
while(getchar()!=\'\\n\')
;
if((0<=grade[i][0])&&(grade[i][0]<=100))
break;
}
필요한 부분만 짤랏어 아래는 생략
grade[x][4] 라는 2차원배열을 선언하고
함수에 저런식으로 선언을 햇어
그리고 점수를 받았어 근데 if문의 조건문이 거지같이 작동을 못하고 무조건 참이 되버리네?
음수 값이나 101 이상의 값을 넣어도 break가 걸린다는 얘기야?
그건 무조건 거짓이돼. 영어를 인식못하네. 근데 숫자를 넣은뒤 영어를 넣으니 영어도 필터링이되네.. 횽 내가 버퍼비우는걸 scanf위로 한번 싹 올려볼게 이거때문인것가타
위로올리면 무한루프 걸리네 아놔 젠장
숫자는 모두 정확하게 인식을 하는데 숫자를 제외한 모든건 제대로 인식을 못해 형
근데 맨처음에 음수나 101이상을 넣은다음에 재입력할때 숫자가 아닌것을 입력하면 필터링이 잘돼. 분명 버퍼 문제이겟지?
그럼 while문 들어가기 전에 버퍼 한 번 비워주고 들어가봐.
이리저리바꿔봐도 게속 그러네 ......
찾았다. if((0<=grade[i][0])&&(grade[i][0]<=100)) 여기서 0<= <<<<<< 이부분에 0을 1로바꿔주니되네?? 무슨 의미일까
-_-; 네가 무슨 문자를 어떻게 입력했는지 알 도리가 없으니 모르겠다. 정 알고싶으면 if문에 bp 걸어놓고 무슨 값이 들어가있나 확인해보면 되지. 수고.
배열의 초기값이 0으로 세팅되어 있는거 아님? scanf %d로 받을때 문자 입력하면 배열엔 들어가지도 않을텐데.