int main()
{
int count = 0; // 연산횟수를 누적
int tmp = 0;
int i = 0;
int j = 0;
int n = 0; // n값을 입력받은 만큼 배열을 생성
int* s;
fputs("n값을 입력하시오. \n(입력받은 n값 만큼 배열 생성)\n", stdout);
fputs("=======================================================\n", stdout);
fputs("입력 : ", stdout);
scanf("%d", &n);
s = (int*)malloc(sizeof(int)*n);
fputs("=======================================================\n", stdout);
printf("배열의 각 요소 값을 %d개 입력하시오.(0 ~ %d) :\n", n, n);
for(i = 0; i < n; i++)
{
printf("%d번째값 입력 : ", i+1);
scanf("%d", &s[i]);
}
fputs("=======================================================\n", stdout);
printf("입력받은 %d개의 배열 값 : \n", &n);
for(i = 0; i < n; i++)
{
printf("%d ", s[i]);
}
fputs("\n", stdout);
fputs("=======================================================\n", stdout);
fputs("교환 정렬을 시작합니다.\n", stdout);
for(i = 0; i <= n-2; i++)
{
for(j = i+1; j <= n-1; j++)
{
if(s[j] < s[i])
{
tmp = s[j];
s[j] = s[i];
s[i] = tmp;
count++;
// printf("%d 회 : s[j] = %d > s[i] = %d\n", count, s[j], s[i]);
}
}
}
fputs("=======================================================\n", stdout);
fputs("교환정렬 후의 배열 값 : ", stdout);
for(i = 0; i < n; i++)
{
printf("%d ", s[i]);
}
fputs("\n", stdout);
fputs("=======================================================\n", stdout);
printf("총 교환 횟수 : %d \n", count);
fputs("=======================================================\n", stdout);
return 0;
}
|