728x90
반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#include<stdio.h>
#include<limits.h>
void sort(int* arr,int start) {
int temp = arr[start];
int max = 0;
int maxIdx = 0;
for (int i = start; i < 5; i++) {
if (max < arr[i]) {
max = arr[i];
maxIdx = i;
}
}
arr[start] = max;
arr[maxIdx] = temp;
}
int main() {
int arr[5];
int target;
for (int i = 0; i < 5; i++) {
scanf_s("%d", arr + i);
}
while (true) {
scanf_s("%d", &target);
if (1 <=target && target <= 5) {
break;
}
else {
printf("다시!!\n");
}
}
printf("배열 = {");
for (int i = 0; i < 5; i++) {
if (i == 4) {
printf("%d", arr[i]);
}
else {
printf("%d, ", arr[i]);
}
}
printf("}\n");
for (int i = 0; i < 5; i++) {
sort(arr, i);
}
printf("%d번째 큰 수 = %d\n", target, arr[target-1]);
}
|
cs |
"다시!"를 통해 여러번 입력받아야 하면 걍 continue보다 while을 쓰자.. 그게 더 편한것 같다..😌
그리고 내림차순 정렬을 할때는 sort(배열,시작값)을 넣어줘서 시작값~ 끝값을 순회하면서 가장 큰 값을 max에 넣어준다.
arr[start]=max
arr[maxIndex]=start를 넣어줌으로써 둘이 swap시킨다.
만약 오름차순 정렬을 한다면 sort(배열,시작값)을 넣어주는것 까진 똑같고, min에 INT_MAX를 넣어줘야한다.
728x90
반응형
'C > 기말고사 대비(2022 1학기)' 카테고리의 다른 글
[C언어 시험대비] 2016년 기말고사 기출(3) (0) | 2022.06.11 |
---|---|
[C언어 시험대비] 배열포인터 (0) | 2022.06.11 |
[C언어 시험대비] 16년 기말고사 기출 (1) (0) | 2022.06.11 |
[기말고사 기출문제 풀이] 2016년 기말(가) (0) | 2022.06.08 |
[C언어 시험대비] 정규표현식 (0) | 2022.06.06 |
댓글