본문 바로가기
툴/단골코드

배열 오름차순 정렬

by aaangdoo 2022. 2. 1.

 

배열 오름차순 정렬

 

1   입력과 동시에 정렬
 int arr[10] = {0, };                    // 10의 크기를 갖는 정수형 배열
                                            // 해당 배열을 0으로 초기화
    int i, j, k, num;

    for (i = 0; i < 10; i++) {                // 정수를 반복적으로 입력
        do {
            printf("%d 번 째 : ", i+1);
            scanf("%d", &num);
        } while (num < 1 || num > 20);        // 1~20까지

        for (j = 0; j < i; j++) {
            if (arr[j] == num) {            // 배열에 존재하는 숫자가 입력되면
                printf("존재하는 수\n");    // 중복되었음을 알리고
                i--;                        // 다시 입력받도록
                break;
            }         
            if (arr[j] > num) {                // 입력된 정수와 배열 안에 숫자들을 비교
                for (k = i; k >= j; k--) arr[k] = arr[k-1];    // 가장 큰 수가 뒤로가도록
                                                            // 오름차순이 되도록
                arr[j] = num;
                break;
            }
        }       
        if (j == i) arr[i] = num;            // 가장 큰 수가 입력되었으면 추가
    }
              
    for (i = 0; i < 10; i++) printf("%d ", arr[i]);

   

 

 

 

2   temp 활용
a[M+1] = { 0, 7, 6, 12, 4, 8 };
    for(int i = 0; i <= M - 1; i++) {
          for (int j = i + 1;  j <= M;  j++) {
                if (a[i] > a[j]) {
                       temp = a[i];
                       a[i] = a[j];
                       a[j] = temp;
                 }
           }
     }

' > 단골코드' 카테고리의 다른 글

가장 큰 수 구하기  (0) 2022.02.28
[java] 배열 선언  (0) 2022.02.07
숫자의 각 자리수 구하기  (0) 2022.02.01

댓글