나는 컴퓨터 과학을 전공하는 초보자 C 프로그래머이며 정수 배열을 정렬하는 정렬 프로그램을 만들려고 노력하고 있는데 잘못된 결과가 계속 나오고 있는데 이것이 지금까지 얻은 것입니다.정수 배열 정렬 C
#include <stdio.h>
#include <string.h>
#define TAM 9
int sort_array(int num1[],int num2[]);
int main(){
int i=0;
int num1[TAM] = {5,6,2,4,7,1,3,0};
int num2[TAM] = {0};
int * ptr_num2 = num2;
sort_array(num1,num2);
while(*ptr_num2 != '\0'){
printf("%c",*ptr_num2+48);
ptr_num2++;
}
putchar('\n');
return 0;
}
int sort_array(int num1[],int num2[]){
int min=256,max=0,i,j;
int * ptr_num1 = num1;
int * ptr_max = num1;
int * ptr_num2 = num2;
/* check for max */
while(*ptr_max != '\0'){
if(*ptr_max > max) max = *ptr_max;
ptr_max++;
}
for(i=0;i<TAM-1;i++){
/* check for min */
for(j=0;j<TAM-1;j++){
if(*ptr_num1 < min) min = *ptr_num1;
ptr_num1++;
num1[i] = max;
}
*ptr_num2 = min;
ptr_num2++;
}
return 0;
}
나는 이미 몇 시간 동안 내 머리를 두드렸다.
편집 : 몇 가지를 실험하고 있기 때문에 이러한 것들 중 일부는 이해가되지 않을 수도 있음을 잊어 버렸습니다.
특정 입력에 대해 실제 출력과 예상 출력은 무엇입니까? –
또한 배열에 'num1'이 9 개의 요소를 포함하도록 선언되었으므로 프로그램에서 [* undefined behavior *] (http://en.wikipedia.org/wiki/Undefined_behavior)를 사용할 수 있지만 * 8 * 이는 마지막 요소의 값이 불확정하다는 것을 의미합니다. –
왜 그런 복잡한 정렬 루틴을 선택하겠습니까? 이상한 요구 사항이 있습니까? –