c程序中的CountDownUp

CountDownUp in c program

我想创建一个 CountDownUP 程序但代码不起作用,我希望它输出 5 4 3 2 1 0 1 2 3 4 5 但它只输出 5 4 3 2 1 0 1

void countDownUp (unsigned int k){
    printf("\n");

    for (int i = 0; i < k; i=1){
        k = k - i;
        printf("%d ", k);
    }

    for (int n = 0; n <= k; n++){
        printf("%d ",n);
    }
}

int main(){
    int num;
    fflush(stdout);
    scanf("%d", &num);

    countDownUp (num);

    return 0;
}

第一个for循环每次循环递减k,并在k == 1时停止。所以第二个循环只是从 0 迭代到 1.

你不应该在第一个循环中修改k,你应该减少i

for (int i = k; i > 1; i--) {
    printf("%d ", i);
}

只是为了好玩,您可以使用一个 for 和:

for(int i = k; i >= -k; i--)
        if(i <= -1)
            printf("%d ", -i);
        else
            printf("%d ", i);