void sort(loc_sos_t a[], int array_size)
{
int i, j;
double index;
loc_sos_t index_block;
for (i = 1; i < array_size; i++){
index = a[i].sos;
index_block= a[i];
for (j = i; j > 0 && a[j-1].sos > index; j--){
a[j].sos = a[j-1].sos;
}
a[j].sos = index;
a[j]= index_block;
}
}
이 코드 단편은 구조체와 정수를 인수로 사용하기로되어 있습니다. 구조체는 배열입니다. 각 인덱스에서 구조체에는 x, y 좌표 및 와트 값이 포함됩니다. 스 니펫은 와트 값을 오름차순으로 정렬하고 해당 x, y 좌표를 새 위치로 가져옵니다.은 구조체에서 데이터 정렬을 시도했지만 올바르게 정렬되었지만 마지막 행 하나가 잘못되었습니다.
input
30.0 meters east, 70.0 meters north, power 0.0045 watts
53.0 meters east, 63.0 meters north, power 0.0006 watts
36.5 meters east, 27.0 meters north, power 0.0005 watts
70.0 meters east, 25.0 meters north, power 0.0015 watts
20.0 meters east, 50.0 meters north, power 0.0008 watts
output
36.5 meters east, 27.0 meters north, power 0.0005 watts
53.0 meters east, 63.0 meters north, power 0.0006 watts
20.0 meters east, 50.0 meters north, power 0.0008 watts
70.0 meters east, 25.0 meters north, power 0.0015 watts
30.0 meters east, 70.0 meters north, power 0.0045 watts
wrong output generated by wrong code
36.5 meters east, 27.0 meters north, power 0.0005 watts
53.0 meters east, 63.0 meters north, power 0.0006 watts
20.0 meters east, 50.0 meters north, power 0.0008 watts
70.0 meters east, 25.0 meters north, power 0.0015 watts
20.0 meters east, 50.0 meters north, power 0.0045 watts
출력물의 마지막 줄이 잘못되었습니다. 도와주세요. 왜 한 줄만 잘못되었는지 나는 모른다.
안 인덱스 시작? – radar
두 번째 항목을 첫 번째 항목과 비교합니다. 그래서 내가 0에서 시작할 경우 인덱스 -1과 비교할 수 없다. 존재하지 않기 때문이다. –