나는 선택 정렬 작업 중입니다.깨진 선택 정렬 C
내 문제는 "void sort"에서 내 코드를 모두 삭제하면 프로그램이 실행된다는 것입니다. 모든 코드를 다시 입력하자마자 "void sort"는 "void sort"의 첫 번째 "printf"함수를 사용하지 않습니다. 나는 무엇이 모든 것을 걸고 있는지 모른다.
여기서 두 번째 문제는 이러한 기능 해야 이렇게이다 :
실행을 통해 그들이 어레이 [] 바르와, X (시작점) 온도 (최저 임시 번호) 및 K (현재 번호.) 각 반복에 대해 x에서 시작하여 temp = x로 설정하고 k = (x + 1)로 설정 한 다음 k ++가 배열의 끝에 도달 할 때까지 설정해야합니다. 배열 [k]가 배열 [temp]보다 작 으면 temp와 k를 같게 설정해야합니다. 그리고 마지막에 배열 [x]와 배열 [temp]을 교환하고 (x + 1)에서 다시 시작합니다.
이전에 작동했을 때, x = 7이라는 결과가있었습니다. 목록), 마지막 번호 만 인쇄합니다. :/wat do
또한, 필요하지 않지만 2 차 질문 어떻게 void 함수에서 정렬 된 배열을 반환합니까? 글로벌 vars? 다른 것?
#include <stdio.h>
#define SIZE 8
void sort(int array[], int size)
{
printf("starting sort, declaring vars...");
int temp, placeholder, x, k;
printf("setting x...");
x = 0;
printf("size(%d), i(%d)", size, x);
printf("starting sort loop...");
while (x < (size - 1));
{
k = (x + 1);
temp = x;
while(k < size)
{
if(array[k] < array[temp])
temp = k;
k++;
}
printf("array[%d] is %d from array[%d]\n", x, array[temp], temp);
placeholder = array[temp];
array[temp]= array[x];
array[x] = placeholder;
printf("%d ", array[x]);
x++;
}
printf("\n");
}
int main(void)
{
int numbers[SIZE] = {4, 15, 16, 50, 8, 23, 42, 108 };
int i;
for (i = 0; i < SIZE; i++)
printf("%d ", numbers[i]);
printf("\ncounted and sorting...\n");
sort(numbers, SIZE);
for (int i = 0; i < SIZE; i++);
printf("%d", numbers[i]);
printf("\n");
return 0;
}
모든 인쇄 명령문 다음에'\ n'을 넣어보십시오. 출력이 버퍼링 될 수 있습니다. – Claudiu
완전히 옳았습니다. 나는 그것을했는데, 이제 "void sort"에서 "while (x <(size - 1))"루프가 멈추었습니다. – user2208569