문제

나를 구현하기 위해 노력하고 삽입니다.알고리즘 작품을 할 때 쓰 스왑 방법 안에 있는 동안 반복입니다.그러나 시도할 때,전화 swap()함수,그것은 틀린 대답이다.특히,통과하면 매개 변수는'j',그것은 대답입니다.는 것을 말해주십시오 나는 실수.(에 ideone![http://ideone.com/MoqHgn])

#include <iostream>
using namespace std;

void swap(int *x, int *y, int *j) { 
    int temp = *x;
    *x = *y;
    *y = temp;
    *j--;
}

int main() {
    int N;
    scanf("%d", &N);
    int a[N];
    for(int i = 0; i < N; i++) {
        scanf("%d", &a[i]);
    }
    for(int i = 1; i < N; i++) {
        int j = i;
        while(j > 0 && a[j-1] > a[j]) {
            swap(&a[j-1], &a[j], &j);
            //int temp = a[j];
            //a[j] = a[j-1];
            //a[j-1] = temp;
            //j--;  
        }
    }

    for(int i = 0; i<N; i++) {
        cout << a[i] << " ";
    }

    return 0;
}
도움이 되었습니까?

해결책

*j-- 와 동일 *(j--), 하지만 당신이 원하는 (*j)--.

당신이 코딩에서는 C++,왜 참조로 전달하는 대신 사용하여 포인터?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top