void swap(int *p, int *q) {
    int t = *p;
    *p = *q;
    *q = t;
}

int getnumber(char prompt[], int imin, int imax, int repeat, int *np) {
    int i;

    *np = 0; // 为了安全，保证函数里一定给 *np 赋了值。
    for (i = 0; repeat <= 0 || i < repeat; ++i) {
        printf("%s", prompt);
        if (scanf("%d", np) != 1 || *np < imin || *np > imax) {
            printf("Wrong input. Correct range [%d, %d].\n",
                   imin, imax);
            while (getchar() != '\n') ;
        }
        else return 1;
    }

    return 0;
}


