-2
정수의 배열을 취하여 기본 16 8 10과 2로 정렬하는 프로그램을 작성 중입니다. 제 함수는 2를 제외한 모든베이스에서 작동합니다. 숫자를 올바르게 정렬하지 않습니다. 나는 주변을 둘러 보았고 어떤 곳도 그 문제를 특별히 설명하지 못했다. 나는 메신저 (>> < <)를 사용하기로되어 있다고 생각하지만 정확히 어떻게 모를까? 당신은 아직도 당신이이 개 지점에 구현에 기반 열에서 작업하고 있다는 사실을 하드 코딩 한기수 2에 대해 기수 정렬 기능이 작동하지 않습니까?
void Sortfunc(int myarray[], int n, int base){
queue<int> bins[10];
int MAX=4; // max digits
int COUNTER=0;// position of counter
while (COUNTER < MAX) {
for(int i=0; i<n; i++){// sorts array by digit
int dividor=pow(base,COUNTER);
int temp = myarray[i];
int value = static_cast<int>((temp/dividor)%10); //gets the decimal
bins[value].push(temp);
}
코드를 보지 않고도 많은 조언을 드릴 수 있다고 생각하지 않습니다. 당신이 가진 것을 게시 할 수 있습니까? – templatetypedef
내가 얻는 오류는 내가베이스 2를 입력했을 때 배열이 올바르게 정렬되지 않는다는 것입니다. 다른 모든베이스에서는 잘 작동합니다. – G3Spin
'std :: sort'를 사용하지 않을 이유가 있습니까? –