|
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
const int ArrSize=10;
int arr[ArrSize];
int num,ex;
int cnt=0;
int i,j;
cout << endl;
while(1){
if(scanf("%d",&num)<=0){
if(cnt<ArrSize) continue;
else break;
}
if(cnt<ArrSize){
arr[cnt++]=num;
}else{
for(i=0 ;i<cnt ;i++){
if(arr[i]>num){
ex = arr[i];
arr[i]=num;
num=ex;
}
}
}
}
for(i=0 ;i<cnt-1 ;i++){
for(j=i+1 ;j<cnt ;j++){
if(arr[i]>arr[j]){
ex = arr[i];
arr[i]=arr[j];
arr[j]=ex;
}
}
}
cout << endl;
for(i=0 ;i<cnt ;i++){
cout << arr[i] << 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]);
:
: }
|