#include <stdio.h>
int main(void)
{
int i, j, temp;
int num[20] = {700,35,65,23,5,78,32,56,57,7,24,
14,78,2,24,85,67,89,24,12};
for(i=0;i<19;i++)
{
for (j=0;j<(19-i);j++)
{
if(num[j] > num[j+1])
{
temp = num[j];
num[j] = num[j+1];
num[j+1]=temp;
}
}
}
for(i=0;i<20;i++)
printf(\"%d\\n\",num[i]);
printf(\"\\n\");
return 0;
}
여기에서
temp = num[j];
num[j] = num[j+1];
num[j+1]=temp;
이거 쓰면 num[i]랑 num[i+1]이랑 자리가 바뀌는거임??ㅠㅠㅠ 왜순서로 쫙나오지?
뭐가문젠대? 이렇게하면 오름차순정렬되는뎅 ?? 정렬이안되게 그냥 출력하고싶은건가??
이건 정답을 그냥 배껴온건데 해석이 안되서여.. temp = num[j]; num[j] = num[j+1]; num[j+1]=temp;이케하면 숫자정렬할때 위치가 바뀌는거에여? num[i]=num[i+1]이면 그냥 같아지는거 아녜여? 그래서 같은수로 20개 채워지는게아닌가해서
tmp에 num[i]를 넣는 이유는 num[i]에 num[i+1] 을 너주면 num[i]값은 사라지잖아? 그래서 일단 넣기전에 임시로 다른변수에다가 저장을 해주는거야
예를 들어서 배열에 1번[5] 2번[4] 가 순서대로 들어있다고 치자 위치를 바꾸고싶어 그럼 tmp에다가 5를 넣고 1번에 4를너은다음에 2번에 tmp를 넣는거임