버블정렬 제 소스인데 왜 실행이 안돼는걸까요 ㅠㅠ
놓아줄게요
우선 버블정렬로 하는건데 ! 배열 맨왼쪽부터 하나하나씩 비교를해야하기때문에하나씩비교한다음 스왑함수를 이용해 배열자리를 바꾸도록 만들었는데 돌아가질않내요 도저히 뭐가 잘못된건지모르겠어서 여쭤볼게요 ㅠㅠ 도와주세요
#include stdio.h#include stdlib.h
int swap(int *p,int *q);
void main() { int i,n,*arr;
printf(학생수를입력하시오:); scanf(%d,&n);
arr=(int*)malloc(sizeof(int)*n);
for(i=0;in;i++) { printf(%d번째 학생의 성적을 입력:,i+1); scanf(%d,&arr[i]); }
printf(\n);
printf(오름차순 정렬전:); for(i=0;in;i++) { printf(%4d,arr[i]); }
printf(\n);
for(i=0;in;i++) { if(arr[i]arr[i+1]) { swap(&arr[i],&arr[i+1]); } }
printf(오름차순 정렬후:); for(i=0;in;i++) { printf(%4d,arr[i]); } printf(\n\n);}
int swap(int *p,int *q){ int temp;
p=&temp; p=q; q=&temp; }
-
은G
그리고 버블 정렬은 한바퀴만 돌리면 안됩니다
예를들어 값을
5 3 1 2 7 9 4 6 8 10
이렇게 넣었을때 항바퀴만 돌리면
3 1 2 5 7 4 6 8 9 10
이런 결과가 나오기 때문에
정렬의 완료를 확인 할 수 있는 식을 넣어줘야합니다 -
남자
swap이틀렸네요..