#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main()
{
int num1, num2, num3, num4, num5;
scanf("%d %d %d %d", &num1, &num2, &num3, &num4);
if (num1 > 100 && num2 > 100 && num3 > 100 && num4 > 100)
{
printf("잘못된 점수\n");
}
else
{
num5 = num1 + num2 + num3 + num4;
num5 /= 4;
}
if (num5 >= 85)
{
printf("합격\n");
}
else
{
printf("불합격\n");
}
return 0;
}
-------------------------------------------------------
num5 = num1 + num2 + num3 + num4;
num5 /= 4;
이 부분에서 중복이 일어나서 낭비가 있는 것 같은데, 이걸 합칠 방법을 생각해 내기 힘듭니다.
일단 실행된 프로그램이 정상적으로 작동하기는 한데..
한 가지 경우, 예를 들어 120 120 120 120 같이 큰 수를 입력한 경우 저런 오류메시지가 뜹니다. 저건 왜 저러는 걸까요.
C언어 시작한 지 2주째입니다..
-. 같은 코드가 두 번 반복되기 시작하면 중복이니 그때 고민해도 될 것 같습니다.
-. 큰 값을 입력했을 때 오류 발생
변수를 초기화하지 않고 사용해서 그렇습니다. 변수를 선언하면서 0으로 초기화해주세요. 초기화하지 않으면 쓰레기 값이 들어갑니다. 큰 값을 넣으면 if (num5 >= 85) 부분에서 num5가 초기화되지 않은 상태이므로 오류가 발생합니다. 쓰레기 값이 들어 있고, 보통은 85보다 크니까 정상적으로 실행되는 것처럼 보이지만, 언젠가는 문제를 일으킬 수 있습니다.
int num5 = 0;
처럼 선언하면서 초기화하면 문제가 발생하지 않을 겁니다.
모든 변수는 선언할 때 초기화하는 습관을 들이면 좋습니다.
책의 색인을 보면 '쓰레기 값' 항목이 있습니다.
쓰레기 값 457 , 462 , 482 , 776
457쪽을 참고하셔도 됩니다. 차례대로 학습하다보면 쓰레기 값도 충분히 이해할 수 있게 준비되어 있습니다.