C/C++ 숫자를입력받고 제일작은수와 제일큰수를 제외한 합을구하는방법.
조회수 853회
#include <iostream>
using namespace std;
int minmax(int num) {
int value, sum;
int min, max;
min = 9999;
max = 0;
for (int i = 0; i < num; i++) {
cout << "Enter your values please " << endl;
cin >> value;
sum += value;
if (max < value) {
max = value;
}
else if (min > value) {
min = value;
}
}
return sum - max - min;
}
int main() {
int n, res;
cout << "Enter your number please " << endl;
cin >> n;
res = minmax(n);
cout << "The summation of values execpt maximum and minimum is : " << res << endl;
return 0;
}
이게 제 소스코드입니다. 만약제가 5을입력하면 5개의 숫자를 입력할수있잖아요? 그래서 [1,2,3,4,5]입력했더니 기대했던 출력값은 : 9 인데 출력값이 -9996532라는 숫자가 출력이되네요. 혹시 뭐가 문제인지 알려주실수있을까요??
2 답변
-
스스로 짠 코드라면, 충분히 자기가 디버깅해서 해결할 수 있을거라고 생각합니다. 쉽게 남에게 도움을 구하지 말고, 자기가 짠 프로그램의 버그를 찾는 연습을 하세요.
minmax 함수 마지막에, min 값과 max 값을 찍어보세요. (
cout << "max : " << max << " , min : " << min << endl;
) 아마 몇번만 실행해 보면 금방 버그 찾을 수 있을 겁니다. -
sum =0;
초기화 하시구if (max < value) { max = value; } if (min > value) { min = value; }
하셔야합니다. 1넣었을때 else if문이 있다면 max에 값이 들어가고 min에는 안들어가겠죠?-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력