소스코드가 이해가 안 되요ㅠㅠ
피어나
안녕하세요 C언어 공부중에 소스코드가 이해가 안되서 질문을 올려요ㅠㅠ
#includestdio.h
int main(void)
{
int n, cnt = 0, sum = 0;
printf(정수입력 : );
scanf(%d, &n);
while(n=0)
{
sum += n;
cnt++;
scanf(%d, &n);
}
printf(성적의 합계는 %d입니다.\n, sum);
printf(성적의 평균은 %lf입니다.\n, (double)sum/cnt);
return 0;
}소스 코드에서 빨간색으로 표시한 Scanf문이 있으니깐 프로그램이 실행이 되고 없으니깐 실행이 안 되는데 왜 그런지 잘 모르겠어요. 그리고 printf(정수입력 : );
scanf(%d, &n);이 부분을 while문에 집어넣으니 n값의 초기값을 지정하라고 오류가 나고 그러는데 왜 그런지 잘 모르겠어요ㅠㅠwhile문 안에 빨간색으로 표시한 scanf가 왜 필요한가요? ㅠㅠ질문부탁드립니다.ㅠㅠ
-
츠키코
감사합니다. 댓글 읽어보고 무슨 말인지 생각해 보니깐 소스코드가 왜 이렇게 되는지 이해가 됐어요. ㅋㅋ 정말 감사합니다.
-
움찬
while의 조건부분을 보시면 n이 양수일경우 sum,+=n; cnt ++ 2가지 연산을 수행합니다.
그리고 n이 음수가 될경우 while을 빠져나가 성적의 합계와 평균을 출력하게되죠
이때 붉은 scanf가 없다면 한번 양수가 된 n이 음수가 될수 있을까요?
윗쪽 scanf를 빼면 초기화 오류가 나는 이유는 처음 n에 값을 넣지 않은채 while에서 n이 음수인지 양수인지를 비교하기때문입니다.