C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[18085] 이글에 리플이 많네? 그럼 저도 답을... ^^;
김백일 [cedar] 970 읽음    2002-05-01 16:38
차미령 님이 쓰신 글 :
: 사용자로부터 10개의 정수값을 입력받아서 다음의 값을 출력하는 프로그램을 작성하시오.
:
: 1.최대값 2. 최소값 3.평균 4.평균보다 큰수의 개수 5. 평균보다 작은수의 개수
:
: 이 다섯개를 구하는건데...제발줌 구해주세영~~ 기다리구 있을께영..."^^"부탁..
: 최대한 빨리했음 좋겠네영...

그럼 저는 STL의 알고리듬을 써서
for, while, do 등의 루프나 if 문 조차도 전혀 쓰지 않고 구현하는 경우를 써보죠.

//---------------------------------------------------------------------------

#pragma hdrstop
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
#include <numeric>

//---------------------------------------------------------------------------
using namespace std;

template <typename T>
class Cin {
  T i;
public:
  Cin() : i() {}
  T operator() () { cin >> i; return i; }
};

#pragma argsused
int main(int argc, char* argv[])
{
    vector<int> vec_int(10);

    // cin으로부터 입력 받아 vec_int를 채움
    generate(vec_int.begin(), vec_int.end(), Cin<int>());

    // vec_int의 내용 출력
    copy(vec_int.begin(), vec_int.end(), ostream_iterator<int>(cout, " "));

    vector<int>::iterator p_max = max_element(vec_int.begin(), vec_int.end());
    cout << "\nMax element = " << *p_max << endl;

    vector<int>::iterator p_min = min_element(vec_int.begin(), vec_int.end());
    cout << "Min element = " << *p_min << endl;

    float avg = (float)accumulate(vec_int.begin(), vec_int.end(), 0) / (float)vec_int.size();
    cout << "Average = " << avg << endl;

    int num_gt_avg = count_if(vec_int.begin(), vec_int.end(), bind2nd(greater<float>(), avg));
    cout << "The number greater than the average = " << num_gt_avg << endl;

    int num_lt_avg = count_if(vec_int.begin(), vec_int.end(), bind2nd(less<float>(), avg));
    cout << "The number less than the average = " << num_lt_avg << endl;

    return 0;
}

+ -

관련 글 리스트
18072 [질문]이것줌 누가 풀어주실래영?? IF문, FOR문 사용하는건뎅.. 차미령 957 2002/04/30
30017     Re:[질문]이것줌 누가 풀어주실래영?? IF문, FOR문 사용하는건뎅.. 배기훈 840 2002/05/01
18085     이글에 리플이 많네? 그럼 저도 답을... ^^; 김백일 970 2002/05/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.