2. 과제 ¶
- swap 함수 구현하기
프로토타입 :
void swap(int a[10], int x, int y) //배열 a의 x번 원소와 y번 원소를 서로 바꾸는 함수
- Bubble Sort 코드 개선하기
temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp;이 부분을 swap함수로 교체해보세요.
swap함수를 사용해서 구현해보라는 얘기입니다.
# 참고 사항 #
main에서 함수를 사용할 때는 두 가지가 필요합니다. 함수 본체와 프로토타입이지요.
그것들을 소스코드에 다음과 같이 적어줘야합니다.
main에서 함수를 사용할 때는 두 가지가 필요합니다. 함수 본체와 프로토타입이지요.
그것들을 소스코드에 다음과 같이 적어줘야합니다.
#include<stdio.h>
void swap(int a[10], int x, int y); //프로토타입
int main(){
//함수 사용
}
void swap(int a[10], int x, int y){ //함수본체
구현
}
4.1. 이지수 ¶
void swap(int a[], int x, int y);
int main(){
int arr[10] = { 10, -3, 99, -8, 1, 7, 2, 5, 34, 21 };
printf("\n 정렬 전\n ");
//show result
for (int i = 0; i < 10; i++){
printf("%d ", arr[i]);
}
printf("\n");
//sorting
for (int j = 8; j >= 0; j--){
for (int i = 0; i <= j; i++){
if (arr[i] > arr[i + 1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}
printf("\n 정렬 후\n ");
//show result
for (int i = 0; i < 10; i++){
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
4.2. 현지 ¶
#include <stdio.h>
int main()
{
int arr[10] = { -1,2,8,-9,-10,6,5,4,3,0 };
int i, j, temp = 0;
printf("정렬전");
for (i = 0; i < 10; i++)
printf("%d ", arr[i]);
printf("\n정렬후:");
for (i = 0; i < 10; i++)
{
for (j = 0; j< 9; j++)
{
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (i = 0; i < 10; i++)
printf("%d ", arr[i]);
printf("\n");
system("pause");
return 0;
}
4.3. 혜민 ¶
#include<stdio.h>
int main()
{
int a[10] = { 2,8,4,1,0,9,6,3,7,13 }, b, i, j;
printf("%d %d %d %d %d %d %d %d %d %d", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]);
for (j = 0; j < 10; ++j)
{
for (i = 0; i < 9; ++i)
{
if (a[i] > a[i + 1])
{
b = a[i];
a[i] = a[i + 1];
a[i + 1] = b;
}
}
}
printf("\n%d %d %d %d %d %d %d %d %d %d", a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]);
return 0;
}
4.4. 유진 ¶
int main(){
int arr[10] = { -10, 3, -8, 9, 6, 11, 2, 3, 17, 0 };
int i, j;
int b;
printf("처음 배열 : \n");
for (i = 0; i < 10; i++)
{
printf("%d\t", arr[i]);
}
for (j = 0; j < 10; j++)
{
for (i = 0; i < 9-j; i++)
{
if (arr[i] > arr[i + 1])
{
b = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = b;
}
}
}
printf("\n나중 배열 : \n");
for (i = 0; i < 10; i++)
{
printf("%d\t", arr[i]);
}
return 0;
}










