배열 오름차순 정렬
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 |
댓글