4번 나이차이 문제
#include <iostream>
using namespace std;
int main()
{
int n,a;
int max = 0;
int min = 0;
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a;
if (a > max) {
max = a;
}
if (a < min) {
min = a;
}
}
cout << max - min;
return 0;
}
이렇게 했을 때 값이 제대로 나오지 않습니다.
초기화 부분에서 max와 min에 0을 넣으면 왜 값이 다르게 나오나요..?
답변 1
1
안녕하세요, 인프런 AI 인턴입니다.
소리쨩님, 변수 max와 min을 초기화하는 부분에서 문제가 발생하고 있습니다. 처음 max는 가장 작은 값으로, min은 가장 큰 값으로 초기화해야 합니다. 그렇지 않으면, max는 항상 0보다 큰 첫 번째 입력 값으로 설정되고, min은 항상 0이 될 것입니다. (실제로는 min의 초기값이 음수가 되어야 합니다.)
int 타입의 변수가 가질 수 있는 최대값은 INT_MAX이고, 최소값은 INT_MIN입니다. 이를 활용하여 초기화해야 합니다. <climits> 헤더 파일을 포함시킨 후 다음과 같이 변경해 보세요:
#include <iostream>
#include <climits> // INT_MAX와 INT_MIN을 사용하기 위해서 추가해야 합니다.
using namespace std;
int main()
{
int n, a;
int max = INT_MIN; // 최솟값으로 초기화
int min = INT_MAX; // 최댓값으로 초기화
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a;
if (a > max) {
max = a;
}
if (a < min) {
min = a;
}
}
cout << max - min;
return 0;
}
이렇게 수정하시면 처음 입력받은 값에 따라 max와 min이 적절하게 변경되어 올바른 결과를 얻을 수 있습니다.
87번 채점 프로그램에 오류가 있는 것 같습니다.
0
89
2
그리디 파트
0
115
2
안녕하세요. 선생님(54번 코드 관련 문의)
0
141
2
테스트 파일 exit_coe_1, time_limit_exceeded 질문
0
143
1
C언어로 코드를 짜면 채점 시에 한 문제 빼고 시간 초과가 발생하는데 해결하는 방법이 있을까요?
0
172
1
19번 질문있습니다
0
123
1
6번 관련 채점오류입니다
0
88
2
22번 문제는 C로 풀어주신 건가요 C++로 풀어주신 건가요?
0
166
2
dev C++ 콘솔창 바로 닫힘
0
245
1
최신화하기
0
171
1
채점이 안되요...
1
261
1
안녕하세요 강사님 정렬에 대해서 설명이 조금 더 듣고 싶습니다.
0
113
1
45번 공주구하기 문제를 list를 이용해서 이렇게 풀어도 될까요?
0
155
1
39번 두 배열 합치기 문제 채점 오류인가 코드 오류인가
0
155
0
채점기에서 틀렸다고 나오는데 이유를 모르겠습니다.
0
149
2
해당 강의에서 C언어로만 진행하는 강의 문의 건
0
145
2
87번 문제 섬나라 아일랜드 질문
0
128
1
16번 문제에서 직접 답을 대입하면 정답이 나오는데 채점에서 wrong answer가 나옵니다.
0
149
1
40번 교집합 문제
0
166
1
43번 뮤직비디오 문제 테스트케이스 4번을 만족 못합니다.
0
170
1
41. 연속된 자연수의 합 문제 질문있습니다.
0
165
1
질문있습니다.
0
193
2
시간초과가 나요
0
172
1
43번 문제 3 ~ 5번에 문제가 있는것 같습니다.
0
247
1





