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; ) 아마 몇번만 실행해 보면 금방 버그 찾을 수 있을 겁니다.

    • 좋은답변감사합니다. 안성훈 2020.10.15 05:56
  • sum =0; 초기화 하시구 if (max < value) { max = value; } if (min > value) { min = value; } 하셔야합니다. 1넣었을때 else if문이 있다면 max에 값이 들어가고 min에는 안들어가겠죠?

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 좋은답변감사합니다. 안성훈 2020.10.15 05:56

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)