문제 설명
입력 받은 20개의 정수들을 작은 값에서 큰 값으로 정렬하라
값을 입력 받아 20개의 배열 요소에 저장을 한다 입력 값은 음수, 양수 상관 없다
단, 20개 정수는 한 줄에 공백으로 분리되어 입력 된다
a[0]에는 가장 작은 값, a[19]에는 가장 큰 값이 저장되도록 정렬(sorting) 한다
정렬된 20개의 데이터를 인쇄한다 가장 작은 값부터 인쇄가 되게 한다
어떻게 배열에 있는 값 들을 정렬 할 수 있을까?
a[0]를 a[1] ~ a[19]과 비교하면서 a[0]가 더 크면 자리를 바꾼다
이렇게 하면 a[0]에 가장 작은 값이 들어오게 되고 이것을 a[1] ~ a[19]에 대하여 반복한다
#include <stdio.h>
void main(void)
{
// 코드 작성
}
입력 예시
-38
291
92
0
239
4879287
281
-274
2989
4892
88
-1
-1
24
2982
78974983
97994
-5839
398593
398593
출력 예시
-5839 -274 -38 -1 -1 0 24 88 92 239 281 291 2982 2989 4892 97994 398593 398593 4879287 78974983
정답 코드
#include <stdio.h>
void main(void)
{
int i, j, num;
int a[20];
for (i = 0; i < 20; i++)
{
scanf("%d", &num);
a[i] = num;
}
for (i = 0; i < 20 - 1; i++)
{
for (j = i + 1; j < 20; j++)
{
if (a[i] > a[j])
{
num = a[i];
a[i] = a[j];
a[j] = num;
}
}
}
for (i = 0; i < 20; i++)
{
printf("%d ", a[i]);
}
}
메모
printf 내부의 \n 습관화 필요