|
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
//---------------------------------------------------------------------------
int main(int argc, char* argv[])
{
const int ArrSize=10;
int num;
typedef vector<int>::iterator iterator;
vector<int> vi(0);
cout << endl;
while(1){
if(scanf("%i",&num)<=0){
if(vi.size()<ArrSize) continue;
else break;
}
if(vi.size()<ArrSize){
vi.push_back(num);
}else{
iterator it=max_element(vi.begin(),vi.end());
if(*it>num){
vi.erase(it);
vi.push_back(num);
}
}
}
sort(vi.begin(),vi.end());
for(iterator it=vi.begin() ; it<vi.end() ;it++){
cout << *it << endl;
}
cout << endl;
system("pause");
return 0;
}
김지혜 님이 쓰신 글 :
: 10개 이상의 수를 사용자 임의로 입력받아서 그 중 크기 순으로 작은 수 10개를 출력하는
: 프로그램인데요.. 어디가 잘못된건지 모르겠어서요..
: (단, 10보다 큰 사이즈의 배열을 사용하면 안된다.)
:
: #include <stdio.h>
:
: #define max_int 32767
:
: main() {
: int i, p, k, num, n, temp;
: int a[10];
:
: printf("Enter sequence of integer, [Ctrl+z] to quit : \n");
: scanf("%d", &num);
: a[0] = num;
:
: while(getchar() != EOF){
: for(i = 1; i < max_int; i++) {
: scanf("%d", &num);
: n = num;
: for(p = 0; p < i; p++) {
: if(a[p] > n) {
: temp = a[p];
: a[p] = n;
: n = temp;
:
: a[i] = n;
: }
: else a[i] = n;
: }
:
: }
: }
: for(k = 0; k < 10; k++)
: printf("prints number %d : %d\n", k+1, a[k]);
:
: }
|