#include
main() {
int arr[6];
int max = 0, min = 99;
int sum = 0;
for (int i = 0; i < 6; i++) {
arr[i] = i * i;
sum += arr[i];
}
for (int i = 0; i < 6; i++) {
if (max < arr[i])
max = arr[i];
if (min > arr[i])
min = arr[i];
}
printf("%.2f", (sum - max - min) / 4.0);
}
정답 : (55-25-0)/4.0 = 7.50
문제는 max가 왜 25고 min 이 왜 0이됩니까? 최대최솟값을 구하는거라고하는데 어느부분이 최대최솟값을구하라는 건지 모르겠습니다
max < arr[i] 일때 max = 0 이니까 배열 [1],[2],[3],[4],[5] / 1,4,9,16,25 다 넣어봐도 다 참입니다. 왜 [5]를 선택한겁니까??
max 변수명 자체가 참인것중에 제일큰걸 선택하는 변수인가요? 아니면 개발자가 보기쉽게 max라고 그냥 이름지은겁니까?
-----------------------------------------------------------------------------------------
다른문제는 정답및 해설보고 혼자 연구하는데만 몇시간걸립니다.
이런거는 도통 이해가 안되서 책을 덮어버립니다. 노전공 노베이스인데 아에 혼자 공부하려니 머리가 돌아버릴거같습니다. 선생님
이런 문제 도움도 여기 게시판 활용해도 되는겁니까? 카페가 있나요? 도저히 안보입니다.
타사에서 필기공부하고 시나공 좋다해서 실기치러 넘어왔는데 정말 좋은지 기대해보겠습니다.
실기강의는 대체 언제 올라오는지 예정일 알수있습니까? 날짜라도 알면 그전까지 포기안하고 공부해보겠습니다.
안녕하세요 길벗수험서 운영팀입니다.
산업기사 영상은 금주 내에 모두 업로드될 예정입니다.
해당 문제에 대한 영상은 다음 링크를 참고해주시기 바랍니다.
간단히 텍스트로도 설명드리자면 max<arr[i]가 참이면 바로 다음 줄에 있는 max=arr[i]를 수행하게 되면서 max에는 항상 큰값이 저장됩니다.
max가 초기값이 0이었으니 arr에 저장된 [0, 1, 4, 9, 16, 25]가 차례로 비교가 될텐데,
0<0 은 거짓이니 max=arr[i]를 수행하지 않아 max 값에는 변화가 없습니다.
0<1은 참이니 max에는 1이 저장됩니다. (max=1)
1<4는 참이니 max에는 4가 저장됩니다. (max=4)
4<9는 참이니 max에는 9가 저장됩니다. (max=9)
9<16은 참이니 max에는 16이 저장되고, (max=16)
16<25는 참이니 max에는 25가 저장됩니다. (max=25)
min 또한 동일한 방식으로 굴러갑니다.
min의 초기값이 99였으므로 arr에 저장된 값들과 차례로 비교하게 되면,
99>0은 참이니 min에는 0이 저장됩니다. (min=0)
0>1은 거짓이니 min=arr[i]를 수행하지 않아 min 값에는 변화가 없습니다.
이후에도 0>4, 0>9, 0>16, 0>25 모두 거짓이므로 min 값에는 변화가 없게 되죠.
이에 모두 수행하게 되면 max는 25를, min은 0을 갖게 되는 것입니다.
행복한 하루되세요 :)
-
관리자2023-03-15 10:03:55
안녕하세요 길벗수험서 운영팀입니다.
산업기사 영상은 금주 내에 모두 업로드될 예정입니다.
해당 문제에 대한 영상은 다음 링크를 참고해주시기 바랍니다.
간단히 텍스트로도 설명드리자면 max<arr[i]가 참이면 바로 다음 줄에 있는 max=arr[i]를 수행하게 되면서 max에는 항상 큰값이 저장됩니다.
max가 초기값이 0이었으니 arr에 저장된 [0, 1, 4, 9, 16, 25]가 차례로 비교가 될텐데,
0<0 은 거짓이니 max=arr[i]를 수행하지 않아 max 값에는 변화가 없습니다.
0<1은 참이니 max에는 1이 저장됩니다. (max=1)
1<4는 참이니 max에는 4가 저장됩니다. (max=4)
4<9는 참이니 max에는 9가 저장됩니다. (max=9)
9<16은 참이니 max에는 16이 저장되고, (max=16)
16<25는 참이니 max에는 25가 저장됩니다. (max=25)
min 또한 동일한 방식으로 굴러갑니다.
min의 초기값이 99였으므로 arr에 저장된 값들과 차례로 비교하게 되면,
99>0은 참이니 min에는 0이 저장됩니다. (min=0)
0>1은 거짓이니 min=arr[i]를 수행하지 않아 min 값에는 변화가 없습니다.
이후에도 0>4, 0>9, 0>16, 0>25 모두 거짓이므로 min 값에는 변화가 없게 되죠.
이에 모두 수행하게 되면 max는 25를, min은 0을 갖게 되는 것입니다.
행복한 하루되세요 :)